从Pandas DataFrame中选择列
我正在尝试在数据框中选择不同的列和行,这里有一些例子。
df1 = DataFrame(np.random.randn(6,4), index=list('abcdef'), columns=list('ABCD'))
A B C D
a -0.767663 0.158213 0.502184 0.156238
b -0.450274 -0.287952 -0.666661 -0.934083
c 2.142362 -1.212363 0.075363 -0.270905
d 0.075977 1.355053 -1.665973 1.266896
e -1.251002 0.274878 -0.511252 1.734822
f -0.587612 0.731301 -0.680246 0.286389
例子 1:
df1.loc[['a','b','d'],:]
A B C D
a -0.767663 0.158213 0.502184 0.156238
b -0.450274 -0.287952 -0.666661 -0.934083
d 0.075977 1.355053 -1.665973 1.26689
例子 2:
df1.loc[['a','b'],:'B']
A B
a -0.767663 0.158213
b -0.450274 -0.2879520
例子 3:
df1.loc['d':,'A':'C']
A B C
d 0.075977 1.355053 -1.665973
e -1.251002 0.274878 -0.511252
f -0.587612 0.731301 -0.680246
例子 4:
df1.loc[['d','e'],:'A']
A
d 0.075977
e -1.251002
例子 5:
df1.loc[['a','d'],:['B','D']] 这段代码是错误的语法。
错误信息:IndexError: invalid slice
有没有什么提示可以帮助我选择行 a 和 d 的列 B 和 D?
1 个回答
0
你可以这样做:
df1.loc[['a','d'],['B','D']]
i:j
的意思是你想从 i 到 j 之间取一段(就像你例子中的 3)
在这里你不需要取一段,所以不需要 :