pandas python中没有列名

use*_*092 11 python pandas

关于熊猫数据框的基本问题.我有一个带数据点的1x1数据帧,并且没有列标题(当前). df[0,0]不起作用,因为我认为它期待列名.另外,df.0不工作也不df[0,'']. df.ix[0,0]确实有效.

一般来说,我是否需要有一个列名?将列名与pandas数据帧一起使用是最佳做法吗?如果我的sql查询没有列标题,那么最好在那时添加它们吗?

谢谢您的帮助.

Ama*_*man 9

不,您不需要分配列名,也不需要它们来访问任何元素.

In [12]: df = pd.DataFrame([0])

In [13]: df.ix[0,0]
Out[13]: 0

In [14]: df[0][0]
Out[14]: 0
Run Code Online (Sandbox Code Playgroud)

实际上,您可以想到已经有名称的列 - 它是整数0.看看提供名称时会发生什么

In [15]: df    #Before naming the column
Out[15]:
   0
0  0

In [16]: df.columns = ['ColA']
In [17]: df    #Renamed
Out[17]:
   ColA
0     0

In [18]: df['ColA'][0]    #Now you can access the column using the new name
Out[18]: 0

In [19]: df[0][0]         #... but trying the old name will not work
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)

KeyError: 'no item named 0'
Run Code Online (Sandbox Code Playgroud)

您仍然可以DataFrame.ix像以前一样使用:

In [20]: df.ix[0,0]
Out[20]: 0
Run Code Online (Sandbox Code Playgroud)