给定这样的一个数据框:
df = pd.DataFrame({'id' : ['1', '2', '3', '4', '5'],
'c1' : ['a', 'a', 'a', 'a', 'a'],
'c2' : ['a', 'a', 'b', 'c', 'c']})
df
Out[5]:
id c1 c2
0 1 a a
1 2 a a
2 3 a b
3 4 a c
4 5 a c
我想在基于c1和c2的数值计数的新列中添加一列。 我的当前代码是:
df['count'] = df.groupby(['c1', 'c2'], dropna=False)['id'].transform('count')
df['result'] = np.where(df['count'] > 1, True, False)
df
Out[7]:
id c1 c2 count result
0 1 a a 2 True
1 2 a a 2 True
2 3 a b 1 False
3 4 a c 2 True
4 5 a c 2 True
有更快的方式吗?