2019-02-13
阅读量:
2557
在groupby使用count和column值过滤数据帧
我正在尝试清理我的数据帧,我正在尝试使用groupby函数。我有ID
和event_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 |
+-----+------------+






评论(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
推荐帖子
0条评论
0条评论
0条评论