pandas python中没有列名

时间:2012-12-26 20:40:07

标签: python pandas

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

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

感谢您的帮助。

1 个答案:

答案 0 :(得分:8)

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

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

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

In [14]: df[0][0]
Out[14]: 0

事实上,您可以想到已经有名称的列 - 它是整数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'

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

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