Python 根据分组依据删除条目

Python 根据分组依据删除条目,python,pandas,Python,Pandas,我有一个如下所示的数据集: venue_id,latitude,longitude,venue_category,country_code,user_id,uct_time,time_offset 4af833a6f964a5205a0b22e3,13.693775,100.751152,Airport,TH,4337,Tue Apr 03 20:35:48 +0000 2012,420 4af833a6f964a5205a0b22e3,13.693775,100.751152,Airport,

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

venue_id,latitude,longitude,venue_category,country_code,user_id,uct_time,time_offset
4af833a6f964a5205a0b22e3,13.693775,100.751152,Airport,TH,4337,Tue Apr 03 20:35:48 +0000 2012,420
4af833a6f964a5205a0b22e3,13.693775,100.751152,Airport,TH,101773,Tue Apr 03 20:46:53 +0000 2012,420
4af833a6f964a5205a0b22e3,13.693775,100.751152,Airport,TH,105093,Tue Apr 03 22:39:56 +0000 2012,420
4af833a6f964a5205a0b22e3,13.693775,100.751152,Airport,TH,58835,Tue Apr 03 22:54:52 +0000 2012,420
....
我需要删除少于100次的地点id

我已尝试使用以下代码:

joined = joined[joined.groupby("venue_id").venue_id.transform(len) >= 100]
其灵感来源于ID为13446480的问题的答案

问题是它给了我以下错误:

AttributeError: 'DataFrameGroupBy' object has no attribute 'venue_id'
请记住,我是熊猫的新手,我想学习,所以如果你能给我一些解释,我将不胜感激

干杯


Dan

第一列似乎是索引,所以请帮助

因此,我们需要:

joined = joined.reset_index()
joined = joined[joined.groupby("venue_id")['venue_id'].transform(len) >= 100]
对于我来说,如果第一列是索引,并且不需要重置索引,也可以工作:

joined = joined[joined.groupby("venue_id").transform(len) >= 100]
如果不使用pandas的最新版本(
0.20.1
),则有必要添加一些列:

joined = joined[joined.groupby(level="venue_id")['latitude'].transform(len) >= 100]
编辑1:

使用
size
作为
len

joined = joined[joined.groupby("venue_id")['latitude'].transform('size') >= 100]

什么是
print(df.index)
?@jezrael我已经用你的第一个建议解决了这个问题。谢谢你的帮助!