pythonic条件聚合

2024-04-20 03:02:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个大的数据框,上面有>;3000个类别标签。我想根据groupby计数有选择地重新编码标签。这就像Excel中的条件替换。例如:

ID Label   
1  cat  
2  dog  
3  cat  
4  cat  
5  dog  
6  bird 

每个的计数:

cat: 3  
dog: 2  
bird: 1   

逻辑:如果count<;=2,则将label更改为“other”

ID Label   
1  cat  
2  other  
3  cat  
4  cat  
5  other  
6  other  

每个的计数:

cat: 3  
other: 3  

也许你们中的一些人知道一种更为邪恶的方式来完成同样的事情。也许神秘的lambda函数可以帮助。。。你知道吗

像往常一样,已经在这里读了一堆帖子。你知道吗

我微薄的Python代码如下所示:

df['Label'] = df.groupby('Label')['Label'].transform('count')
df['New_Label'] = np.where(df.label <= 2, 'other', df.label)

Tags: 数据gtiddfcount标签类别label
1条回答
网友
1楼 · 发布于 2024-04-20 03:02:25

此代码使用pd.DataFrame.where()而不是np.where(),并在一行中执行:

df.Label = df.Label.where(df.groupby('Label')['Label'].transform('count') > 2, 'other')
print(df)
     Label
ID       
1      cat
2    other
3      cat
4      cat
5    other
6    other

相关问题 更多 >