如何从具有多层头的Python数据帧中检索数据?

2024-05-15 11:35:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下格式的CSV文件:

            Level1_head1    Level1_head2    Level1_head3
            Level2_head1    Level2_head2    Level2_head3 
ID
S0000001    someValue       someValue       someValue       
S0000002    someValue       someValue       someValue       
S0000003    someValue       someValue       someValue       
S0000004    someValue       someValue       someValue       
S0000005    someValue       someValue       someValue

请注意,ID上方的单元格为空,ID右侧的单元格也是空的。在

我把上面的数据放在Python Dataframe对象df中,并试图从中提取列ID

^{pr2}$

但是,我得到了整个数据帧而不是单个列。输出数据帧时,显示如下:

^{3}$

我也试过:

date_series = df['ID']

以及

date_series = df.ID

但是,对于前者,我有一个键错误,df找不到值为'ID'的键。对于后者,我得到一个错误消息,df没有属性'ID'。在

我现在完全糊涂了。如何检索包含ID的第一列(ID)?在


Tags: 文件csv数据iddfdate格式错误
1条回答
网友
1楼 · 发布于 2024-05-15 11:35:22

不能使用date_series = df['ID'],因为IDindexname。在

但是使用^{}获取第一列index到{}:

print df
         Level1_head1 Level1_head2 Level1_head3
         Level2_head1 Level2_head2 Level2_head3
ID                                             
S0000001    someValue    someValue    someValue
S0000002    someValue    someValue    someValue
S0000003    someValue    someValue    someValue
S0000004    someValue    someValue    someValue
S0000005    someValue    someValue    someValue

print df.index.name
ID

print df.index
Index([u'S0000001', u'S0000002', u'S0000003', u'S0000004', u'S0000005'], dtype='object', name=u'ID')

print df.index.to_series()
ID
S0000001    S0000001
S0000002    S0000002
S0000003    S0000003
S0000004    S0000004
S0000005    S0000005
Name: ID, dtype: object

#if you need reset index
print df.index.to_series().reset_index(drop=True)
0    S0000001
1    S0000002
2    S0000003
3    S0000004
4    S0000005
Name: ID, dtype: object

或含有pd.Series的溶液:

^{pr2}$

相关问题 更多 >