从Pandas DataFrame中选择列

1 投票
1 回答
780 浏览
提问于 2025-04-18 07:47

我正在尝试在数据框中选择不同的列和行,这里有一些例子。

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)

在这里你不需要取一段,所以不需要 :

撰写回答