我有一个数据框作为下面的 df1。我想从包含 -
的项目中删除重复的项目。例如,行 1 和 行 3 将删除 1A
和 1A
,2B
分别与 df2 一样。
如何删除重复项?
数据框:
df1 = DataFrame({'Condition': ['1A', '1A, 1A-1A', '1A, 2B', '1A, 2B, 1A-2B', '3C, 1A-2B']})
df1
Condition
0 1A
1 1A, 1A-1A
2 1A, 2B
3 1A, 2B, 1A-2B
4 3C, 1A-2B
目标输出:
df2 = DataFrame({'Condition': ['1A', '1A-1A', '1A, 2B', '1A-2B', '3C, 1A-2B']})
df2
Condition
0 1A
1 1A-1A
2 1A, 2B
3 1A-2B
4 3C, 1A-2B
最佳答案
您可以使用 -
创建包含值的集合,并测试拆分后的值是否不在集合中,最后通过 ,
加入:
L = []
for x in df1['Condition']:
a = x.split(', ')
s = set([z for y in a if '-' in y for z in y.split('-')])
L.append(', '.join([z for z in a if z not in s]))
df1['new'] = L
print (df1)
Condition new
0 1A 1A
1 1A, 1A-1A 1A-1A
2 1A, 2B 1A, 2B
3 1A, 2B, 1A-2B 1A-2B
4 3C, 1A-2B 3C, 1A-2B
关于python - 如何从数据框单元格中的格式项中删除重复项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56183125/