啊啊啊啊啊吖

2019-02-13   阅读量: 357

数据分析师 Python数据分析

在groupby使用count和column值过滤数据帧

我正在尝试清理我的数据帧,我正在尝试使用groupby函数。我有IDevent_type作为我的专栏。我想获得一个新的数据框,如果只有一行具有唯一ID,那么event_type必须是a。如果没有,则删除该行。

数据看起来像这样:event_type可以是“a”或“b”

+-----+------------+
| ID | event_type |
+-----+------------+
| xyz | a |
| pqr | b |
| xyz | b |
| rst | a |
+-----+------------+

输出:由于ID "pqr"只发生一次(这是计数)而没有a(列值),因为event_type数据帧应该转换为以下内容:

+-----+------------+
| ID | event_type |
+-----+------------+
| xyz | a |
| xyz | b |
| rst | a |
+-----+------------+


0.0000 0 2 关注作者 收藏

评论(1)

啊啊啊啊啊吖
2019-02-13

解决办法:

可以在一个中使用的逻辑 groupby


import pandas as pd

df = pd.DataFrame({"ID":['xyz', 'pqr', 'xyz', 'rst'],

"event_type":['a', 'b', 'b', 'a']})



df.groupby("ID")\

.apply(lambda x: not (len(x)==1 and

not "a" in x["event_type"].values))

可以通过打印检查。最后使用此过滤器即可运行


df = df.groupby("ID")\

.filter(lambda x: not (len(x)==1 and

not "a" in x["event_type"].values))\

.reset_index(drop=True)

0.0000 0 0 回复

推荐课程