python - 删除重复项,但将一列的数据保留在新列中
问题描述
我有一个包含 2 列的数据框
Column1 Column2
A 1
B 1
A 2
B 2
我想删除第 1 列的重复项,但将已删除行的第 2 列的值保留在新列中
Column1 Column2 Column3
A 1 2
B 1 2
解决方案
使用groupby()
+cumcount()
跟踪位置,然后pivot()
:
df=(df.assign(key=df.groupby('Column1').cumcount())
.pivot('Column1','key','Column2')
.rename(columns=lambda x:f"Column{x+2}")
.rename_axis(columns=None).reset_index())
或分 3 个步骤:
df['key']=df.groupby('Column1').cumcount()+2
df=df.pivot('Column1','key','Column2').add_prefix('Column')
df=df.rename_axis(columns=None).reset_index()
输出df
:
Column1 Column2 Column3
0 A 1 2
1 B 1 2
推荐阅读
- git - Git终端无法找到SSH密钥,即使成功生成它
- hyperledger-fabric - 如何在智能合约(Hyperledger Fabric)中访问对等证书?
- bash - 如何在shell的日期字段中将零添加到单个数字日期
- compare - 使用 SYS.dm_exec_describe_first_result_set 比较 2 个表结构
- python - 在 Windows 上的 python 中使用gym atari(0.9.5版)
- python - 有没有办法使用切片和索引来检索特定的字符串值?
- sql - 一列的累计和
- loops - 关于使用 groupby 和迭代的列中的日期时间评估的问题
- graph - 使用卡恩算法检测拓扑排序中的循环(入度/出度)
- r - 将数据集中的单行(顶行)转置到其自己的列