2016-09-16 88 views
0

此问题的最终目标是使用数据框为图形绘制X和Y.在数据框中打印列名称和值

我有一个数据帧像这样:

   Open High  Low Close  Volume  stock symbol 
Date                
2000-10-19 1.37 1.42 1.24 1.35 373590000   AAPL 
2000-10-20 1.36 1.46 1.35 1.39 195836200   AAPL 
2000-10-23 1.39 1.49 1.39 1.46 129851400   AAPL 
2000-10-24 1.48 1.49 1.34 1.35 192711400   AAPL 
2000-10-25 1.36 1.37 1.30 1.32 163448600   AAPL 
2000-10-26 1.34 1.42 1.25 1.32 178110800   AAPL 
2000-10-27 1.35 1.37 1.28 1.33 181242600   AAPL 
2000-10-30 1.37 1.42 1.34 1.38 152558000   AAPL 

,我试图绘制DateOpen。我知道有一种简单的绘图方式,但是我会将这个概念应用到更大的数据框中,并想知道如何“长时间”执行此操作。

我已经试过什么:

print(some_DF['Open'])

结果:

Date 
    2000-10-19  1.37 
    2000-10-20  1.36 
    2000-10-23  1.39 
    2000-10-24  1.48 
    2000-10-25  1.36 
    2000-10-26  1.34 

问题:

日期似乎是我的索引,但列标题“打开“不出现。

问:

如何打印上面的数据帧,同时具有'Open'我的头。然后使一些值x = Date的列和一些值y = 'Open的值?

“预期的代码工作”:

林想这样

print([some_DF['Open'] headers = 'date','open') 
x = some_DF['Date'] #So that this becomes first column of dataframe 
y = some_DF['Open'] #So that this becomes second column of dataframe 
+0

什么是数据文件?前10行将做。我很好奇你是如何读取数据文件的,以及原始文件是什么样的 – TuanDT

+2

您是否尝试过'print(some_DF [['Open']])? –

+0

@ M.Klugerford这非常接近我想要的。但是,'日期'和'打开'标题看起来在不同的行上。你能解释一下双[''']]'在做什么吗? – MattR

回答

3

您可以reset_index的数据帧,然后打印数据框的子集由两个列

>>> df 
      a b 
Date    
2000-10-19 1 3 
2000-10-20 2 4 
2000-10-21 3 5 
2000-10-22 4 6 
2000-10-23 5 7 
>>> print(df.reset_index()[['Date', 'a']]) 
     Date a 
0 2000-10-19 1 
1 2000-10-20 2 
2 2000-10-21 3 
3 2000-10-22 4 
4 2000-10-23 5 

就像IanS提到的,你不应该担心熊猫的输出。日期是一个索引并打开一列。印刷品声明中的差异说明了这种区别。

编辑:

df[[list_of_column_names]]相同df.loc[:, [list_of_column_names]]。它给出了列的原始数据框子集列表。

+0

restet_index ...为什么我没有想到这一点。大!现在我该如何让'x'第一列和'y'第二列?有小费吗? – MattR

+0

@MattR与你原来的数据框你可以做'print(some_DF.reset_index()[['Date','Open']])'输出的顺序取决于你提供列名列表的顺序。 –

+0

我仍然对'[[]]'在做什么感到困惑。有可能解释吗?我真的很感谢帮助 – MattR