根据列value_counts(pandas)过滤数据帧
问题描述:
我第一次尝试使用熊猫。我有一个有两列的数据框:user_id
和string
。每个user_id可能有多个字符串,因此多次出现在数据帧中。我想从这个派生另一个数据框;其中只列出那些至少有2个或更多strings
与之相关的user_ids
。根据列value_counts(pandas)过滤数据帧
我试过df[df['user_id'].value_counts()> 1]
,我认为这是做这件事的标准方法,但它会产生IndexingError: Unalignable boolean Series key provided
。有人能清除我的概念并提供正确的选择吗?
答
我认为你需要transform
,因为需要掩码的相同index
作为df
。但如果使用value_counts
index
被更改并且会引发错误。
df[df.groupby('user_id')['user_id'].transform('size') > 1]
相关和可能的欺骗:https://*.com/questions/30485151/python-pandas-exclude-rows-below-a-certain-frequency-count – EdChum