Pandas 设置值\低于阈值的计数与其他值相同
我想用count设置项目使用with检查是否所有值都被withPandas 设置值\低于阈值的计数与其他值相同,pandas,Pandas,我想用count设置项目使用with检查是否所有值都被withkeep=False复制: df['result'] = df.item.where(df.item.duplicated(keep=False), 'other') 或通过以下方式与大于1的值一起使用: 或用于: 与和一起使用: 或使用Groupby.size与合并: In [917]: x = df.groupby('item').size().reset_index() In [919]: ans = df.merge(x
keep=False复制:
df['result'] = df.item.where(df.item.duplicated(keep=False), 'other')
或通过以下方式与大于1的值一起使用:
或用于:
与和一起使用:
或使用Groupby.size
与合并
:
In [917]: x = df.groupby('item').size().reset_index()
In [919]: ans = df.merge(x)
In [921]: ans['result'] = np.where(ans[0].le(1), 'other', ans.item)
In [923]: ans = ans.drop(0, 1)
In [924]: ans
Out[924]:
item result
0 a a
1 a a
2 a a
3 b b
4 b b
5 c other
6 d other
item result
0 a a
1 a a
2 a a
3 b b
4 b b
5 c other
6 d other
df['result'] = df.item.where(df.item.duplicated(keep=False), 'other')
df['result'] = df.item.where(df.groupby('item')['item'].transform('size').gt(1), 'other')
df['result'] = df.item.where(df['item'].map(df['item'].value_counts()).gt(1), 'other')
print (df)
item result
0 a a
1 a a
2 a a
3 b b
4 b b
5 c other
6 d other
In [926]: import numpy as np
In [927]: df['result'] = np.where(df.groupby('item')['item'].transform('count').le(1), 'other', df.item)
In [928]: df
Out[928]:
item result
0 a a
1 a a
2 a a
3 b b
4 b b
5 c other
6 d other
In [917]: x = df.groupby('item').size().reset_index()
In [919]: ans = df.merge(x)
In [921]: ans['result'] = np.where(ans[0].le(1), 'other', ans.item)
In [923]: ans = ans.drop(0, 1)
In [924]: ans
Out[924]:
item result
0 a a
1 a a
2 a a
3 b b
4 b b
5 c other
6 d other