gpt4 book ai didi

python - Pandas :按多个条件过滤组?

转载 作者:太空狗 更新时间:2023-10-29 20:44:37 24 4
gpt4 key购买 nike

我有一个如下所示的数据框:

df = pd.DataFrame([
{'id': 123, 'date': '2016-01-01', 'is_local': True },
{'id': 123, 'date': '2017-01-01', 'is_local': False },
{'id': 124, 'date': '2016-01-01', 'is_local': True },
{'id': 124, 'date': '2017-01-01', 'is_local': True }
])
df.date = df.date.astype('datetime64[ns]')

我想获取所有 ID 的列表,其中 is_local 在 2016 年初为 True,但在 2017 年初为 False。我首先按 ID 分组:

gp = df.groupby('id')

然后我试过这只是为了按这些条件中的第二个进行过滤(作为一种入门方式),但它返回了所有组:

gp.apply(lambda x: ~x.is_local & (x.date > '2016-12-31'))

如何按照我需要的方式进行过滤?

最佳答案

d1 = df.set_index(['id', 'date']).is_local.unstack()
d1.index[d1['2016-01-01'] & ~d1['2017-01-01']].tolist()

[123]

关于python - Pandas :按多个条件过滤组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43800643/

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