我正在使用以下代码阅读包含569 rows
和125 columns
的df:
df = pd.read_csv('data', header = None, sep = '\s+')
df.info()
的输出是:
<class 'pandas.core.frame.DataFrame'>
Int64Index: 569 entries, 0 to 568
Columns: 125 entries, 0 to 124
dtypes: float64(123), int64(2)
memory usage: 560.1 KB
df
的输出是:
0 1 2 3 4 5
0 0 0.000000e+00 773 19.7205 25.944920 0.205061
1 1 1.000000e+00 772 19.7205 25.944920 0.205061
2 2 2.100000e+00 748 19.7205 25.944920 0.205061
3 3 3.310000e+00 763 19.7205 25.944920 0.205061
...
568 568 1.010799e+10 697 19.7205 25.524932 0.199651
当我写print df['X.1']
或 print df['1']
时,我收到了错误消息:
KeyError: 'X.1'
或
KeyError: '1'
有人可以向我解释为什么我收到错误吗?
谢谢!
答案 0 :(得分:2)
IIUC您需要致电df[1]
,因为您的列是整数。您可以检查它是否使用索引的df.columns
调用dtype
。
如果你有这样的东西,你需要像整数一样调用:
In [214]: df.columns
Out[214]: Int64Index([1, 2, 3, 4, 5], dtype='int64')
In [215]: df[1]
Out[215]:
0 0.00
1 1.00
2 2.10
3 3.31
Name: 1, dtype: float64
如果列名为str
,则需要致电df['1']
:
In [216]: df.columns = map(str, range(1,6))
In [218]: df.columns
Out[218]: Index(['1', '2', '3', '4', '5'], dtype='object')
In [219]: df['1']
Out[219]:
0 0.00
1 1.00
2 2.10
3 3.31
Name: 1, dtype: float64