Python Pandas - 处理重复项

标签 python pandas

我想处理 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/

相关文章:

python - 如何将字符和字节列表转换为纯字节列表?

python - emacs `python-shell-send-defun` 跳过缓冲区中的第一行

Pandas :按不需要的列名子集数据框

python - Pandas:有条件更新行时遇到问题

python - 如何从 CLI 访问我的自定义 python 脚本以便它们对任何文件执行操作?

python - geodjango(postgis)中两个3D点之间的距离

python - 如何使用 SQLAlchemy 将行从本地 SQLite 数据库迁移到远程 MySQL 数据库?

python - 如何对以下内容进行矢量化,追加可能是瓶颈

python - 基于 bin 的子集 pandas DataFrame

python - 更改 pandas Dataframe 中日期时间的值