【发布时间】:2014-05-26 12:13:01
【问题描述】:
如何在不删除列名的情况下选择数据框列 df['col']?
df
index colname col1 col2 col3
1 0 1 2
2 3 4 5
3 6 7 8
4 9 10 11
期望的输出:
df['col1']
index colname col1
1 0
2 3
3 6
4 9
编辑: 如正确回答, df[['col1']] 完成了这项工作......现在有点棘手。如果列是多索引的怎么办?
df grpname A B ... Z
index colname cA1 ... cAN cB1 ... cBN ... cZ1 ... cZN
1 a11 ... a1N b11 ... b1N ... z11 ... z1N
2 a21 ... a2N b21 ... b2N ... z21 ... z2N
3 a31 ... a3N b31 ... b3N ... z31 ... z3N
4 a41 ... a4N b41 ... b4N ... z41 ... z4N
我想得到
df grpname A
index colname cA1 cA2
1 a11 a12
2 a21 a22
3 a31 a32
4 a41 a42
看起来 .xs() 只允许我检索某个列,即 df.xs( ('A', 'cAi'), level=('grpname','colname'), axis=1, drop_level =False) ),而 df[['A']]['cA1':'cAi'] 也不起作用?
【问题讨论】:
-
df[['col']]没有做你想做的事吗? -
df[['col']] 应该仍然可以工作我不明白你到底想要什么,你能发布复制数据和输出的代码
-
现在可能更清楚了。我想在不删除标签的情况下获得只有两个“cols”的“A”组。
-
请发布重现数据和组的代码