gpt4 book ai didi

python - 使用唯一值更改重复项

转载 作者:太空宇宙 更新时间:2023-11-04 04:04:09 25 4
gpt4 key购买 nike

我想用唯一的值替换重复的值。例如,让我们拿一个dataframe df,

col1 col2
A 1
B 2
C 2
A 3
A 4

在这个 col1 中有重复的 A 在 col2 中具有不同或相同的值。我想要的是用唯一的 的值替换重复项col2 如下所示,

col1 col2
A 1
B 2
C 2
A 1
A 1

请帮我整理一下。提前致谢。

最佳答案

使用Series.map by DataFrame.drop_duplicates 删除重复项创建的系列:

df['col2'] = df['col1'].map(df.drop_duplicates('col1').set_index('col1')['col2'])

另一个想法是使用 GroupBy.first - 将组的第一个值复制到每个组的所有值:

df['col2'] = df.groupby('col1')['col2'].transform('first')

print (df)
col1 col2
0 A 1
1 B 2
2 C 2
3 A 1
4 A 1

编辑:

如果需要将col2col1的所有重复行替换为1:

df.loc[df['col1'].duplicated(keep=False), 'col2'] = 1
print (df)
col1 col2
0 A 1
1 B 2
2 C 2
3 A 1
4 A 1

变化数据中最明显的差异:

print (df)
col1 col2
0 A 5
1 B 4
2 C 2
3 A 3
4 C 4

df['col2'] = df['col1'].map(df.drop_duplicates('col1').set_index('col1')['col2'])
print (df)
col1 col2
0 A 5
1 B 4
2 C 2
3 A 5
4 C 2

df.loc[df['col1'].duplicated(keep=False), 'col2'] = 1
print (df)
col1 col2
0 A 1
1 B 4
2 C 1
3 A 1
4 C 1

关于python - 使用唯一值更改重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57686516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com