【发布时间】:2017-06-11 22:28:45
【问题描述】:
有没有办法让 pandas 同时显示列号和列名?我正在处理一个超过 30 列的数据集,所有的列名都很长,有些相互之间几乎没有变化。在编写代码时输入名称绝对是一件苦差事。 (我仍然需要查看列名才能知道要选择哪些列)
谢谢。
【问题讨论】:
-
抱歉,新手
有没有办法让 pandas 同时显示列号和列名?我正在处理一个超过 30 列的数据集,所有的列名都很长,有些相互之间几乎没有变化。在编写代码时输入名称绝对是一件苦差事。 (我仍然需要查看列名才能知道要选择哪些列)
谢谢。
【问题讨论】:
一种可能的解决方案是创建MultiIndex,然后按DataFrame.xs 选择列:
df = pd.DataFrame({'A':[1,2,3],
'B':[4,5,6],
'C':[7,8,9],
'D':[1,3,5],
'E':[5,3,6],
'F':[7,4,3]})
print (df)
A B C D E F
0 1 4 7 1 5 7
1 2 5 8 3 3 4
2 3 6 9 5 6 3
df.columns = pd.MultiIndex.from_arrays([pd.RangeIndex(len(df.columns)), df.columns])
print (df)
0 1 2 3 4 5
A B C D E F
0 1 4 7 1 5 7
1 2 5 8 3 3 4
2 3 6 9 5 6 3
print (df.xs(2, level=0, axis=1))
C
0 7
1 8
2 9
【讨论】:
df[2]做同样的事情