gpt4 book ai didi

python - 在 Pandas 中过滤数据框

转载 作者:行者123 更新时间:2023-11-28 22:45:05 25 4
gpt4 key购买 nike

我有一个数据框如下:

dic ={'wteam': [2, 3, 4, 2, 4], 'lteam': [3, 4, 2, 4, 2]}
pd.DataFrame(dic)

lteam wteam
0 3 2
1 4 3
2 2 4
3 4 2
4 3 4

我需要一个新的数据框,它在 lteam 或 wteam 中有 2 个。

        lteam  wteam
0 3 2
2 2 4
3 4 2

我如何在 Pandas 中执行此操作?

最佳答案

你的起始 df 的输出是错误的,最后一行应该是 [2,4],除此之外我们可以调用 loc 对 bool 过滤 df 生成的索引加上删除任何 NaN 值:

In [15]:

df.loc[df[df==2].dropna(thresh=1).index]
Out[15]:
lteam wteam
0 3 2
2 2 4
3 4 2
4 2 4

分解:

In [16]:

df[df==2]
Out[16]:
lteam wteam
0 NaN 2
1 NaN NaN
2 2 NaN
3 NaN 2
4 2 NaN
In [17]:

df[df==2].dropna(thresh=1)
Out[17]:
lteam wteam
0 NaN 2
2 2 NaN
3 NaN 2
4 2 NaN

更简洁的方法是提供 2 个 bool 条件:

In [18]:

df[(df.lteam == 2) | (df.wteam == 2)]
Out[18]:
lteam wteam
0 3 2
2 2 4
3 4 2
4 2 4

由于运算符的优先级,这需要使用按位 | 运算符和括号括起条件

如果您有很多列,第一种方法会更好,但对于您的简单数据集,后一种方法就可以了。

关于python - 在 Pandas 中过滤数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28939621/

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