【发布时间】:2023-03-16 06:20:01
【问题描述】:
我有一个如下的数据框
User eve Ses
a 123 1
a 123 2
a 123 3
a 123 4
a 123 5
a 123 6
a 456 1
a 456 2
a 456 3
a 456 4
a 456 5
a 456 14
a 456 7
a 456 8
a 456 9
a 456 10
a 888 1
a 888 2
a 888 3
a 888 4
a 888 5
a 888 5
a 888 7
a 888 8
b 123 1
b 123 2
b 123 3
b 123 4
b 123 5
b 123 6
b 456 1
b 456 2
b 456 3
b 456 4
b 456 5
b 456 9
b 456 7
b 456 8
b 456 9
b 456 10
b 888 1
b 888 2
b 888 3
b 888 4
b 888 5
b 888 6
b 888 7
b 888 8
我想按 User 和 eve 分组,并获得一个包含所有包含 6 或 14 的组的新数据框
当我使用下面的代码时
df.groupby(['User','eve']).apply(lambda x: (x['Ses']==6).any()|(x['Ses']==14).any())
我准确地得到了下面有 6 个或 14 个的组
User eve
a 123 True
456 True
888 False
b 123 True
456 False
888 True
dtype: bool
我只是无法使用此信息来获取包含True 组的新数据框。
预期的输出是新的数据框,如下所示。谁能指导一下?
User eve Ses
a 123 1
a 123 2
a 123 3
a 123 4
a 123 5
a 123 6
a 456 1
a 456 2
a 456 3
a 456 4
a 456 5
a 456 14
a 456 7
a 456 8
a 456 9
a 456 10
b 123 1
b 123 2
b 123 3
b 123 4
b 123 5
b 123 6
b 888 1
b 888 2
b 888 3
b 888 4
b 888 5
b 888 6
b 888 7
b 888 8
【问题讨论】:
标签: python python-3.x pandas dataframe pandas-groupby