python - 如何从数据框单元格中的格式项中删除重复项?

标签 python pandas dataframe

我有一个数据框作为下面的 df1。我想从包含 - 的项目中删除重复的项目。例如,行 1行 3 将删除 1A1A2B 分别与 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/

相关文章:

python - 从矩阵数据框中提取组合列表及其计数值?

python - 在 AWS Sagemaker 中启用 gpu 支持

python - 在由现有列的值组成的数据框中创建一个新列

python - 如何在python中每次找到最近52周销售额的平均值

python - Pandas/Python 合并两个具有重复行的数据框

python - pandas 列的条件累积和

python - pandas df 中的多重逻辑比较

python - Pandas 从剪贴板读取带有日期时间列的 DataFrame

python - 在 Facebook 图形 API 上使用 twisted.web.client.Agent 时如何处理 OpenSSL.SSL.Error?

python - 更改目录以在linux中执行程序