我想处理 pandas df 中的重复项:
df=pd.DataFrame({'A':[1,1,1,2,1],'B':[2,2,1,2,1],'C':[2,2,1,1,1],'D':['a','c','a','c','c']})
df
我只想保留具有唯一值 A、B、C 的行并创建二进制列 D_a 和 D_c,因此结果将是这样的,而无需在每一行上执行超慢循环。
result= pd.DataFrame({'A':[1,1,2],'B':[2,1,2],'C':[2,1,1],'D_a':[1,1,0],'D_c':[1,1,1]})
非常感谢
最佳答案
您可以使用:
df1 = (df.groupby(['A','B','C'])['D']
.value_counts()
.unstack(fill_value=0)
.add_prefix('D_')
.clip_upper(1)
.reset_index()
.rename_axis(None, axis=1))
print (df1)
A B C D_a D_c
0 1 1 1 1 1
1 1 2 2 1 1
2 2 2 1 0 1
关于Python Pandas - 处理重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47812615/