gpt4 book ai didi

python - 选择索引标签位于两个列表之一中的 Pandas Dataframe 行

转载 作者:行者123 更新时间:2023-12-01 01:28:02 25 4
gpt4 key购买 nike

我有一个带有索引标签的数据框

     one   two three

A ... ... ...
B ... ... ...
C ... ... ...
D ... ... ...
E ... ... ...
F ... ... ...

我想根据行索引标签是否在一个列表中或另一个列表中对数据帧进行子集化。这些列表是排他的,不会包含相同的元素。

我可以用一个列表来完成此操作,但似乎不能用两个列表。

所以如果我有 list_A = ['A, B, F']list_B = ['D']

因此df[df.index.isin(list_A)] 产生:

     one   two three

A ... ... ...
B ... ... ...
F ... ... ...

我想要的是 df[df.index.isin(['A','B','D','F'])] 而不合并列表:

     one   two three

A ... ... ...
B ... ... ...
D ... ... ...
F ... ... ...

但是当我尝试 'df[df.index.isin(list_A 或 List_B)]df[df.index.isin(list_A) 或 df.index.isin( list_B)] 它不起作用。

我做错了什么?

最佳答案

您有几个选择。

对两个系列使用|(按位“或”)

df.index.isin(lst) 给出 bool 系列,因此通过 | 使用矢量化 or 运算:

df_filtered = df[df.index.isin(list_A) | df.index.isin(list_B)]

使用pd.Index.isin之前合并列表

通过考虑两个输入列表的单个 bool 系列进行索引可能会更有效:

df_filtered = df[df.index.isin(list_A + list_B)]

关于python - 选择索引标签位于两个列表之一中的 Pandas Dataframe 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53176963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com