如何删除熊猫列行中的重复条目?

时间:2021-08-01 13:49:32

标签: python pandas

我有这个数据框 enter image description here

我想删除列行中的重复条目并仅返回唯一值。我尝试了 set(df['unit]) 但它根本没有帮助。例如,我只想拥有 (New Ward, Adult Ward)/(Pediatric Ward)。 你能告诉我如何解决这个错误吗?

1 个答案:

答案 0 :(得分:2)

您的单元格似乎包含以逗号分隔的字符串。在这种情况下,您可以

  • ',\s*' 处拆分条目(逗号加可选空格),
  • 将它们转换为集合,
  • 并将它们重新加入以逗号分隔的字符串:
df['unit'] = df.unit.str.split(',\s*').apply(set).str.join(', ')

然而,这种编码值的方式有缺点。 (例如,'Adult Ward, New WARD''New WARD, Adult Ward' 将是两个不同的值,而实际上它们是相同的)。考虑将每个病房作为单独的列处理,例如,

for w in ['Pediatric Ward', 'New Ward', 'Adult Ward']:
    df[w] = df.unit.str.contains(w, case=False)

将为每个病房生成单独的列,这将更容易处理,例如获得病房的组合:

                   unit  Pediatric Ward  New Ward  Adult Ward
0        Pediatric Ward            True     False       False
1  Adult Ward, New WARD           False      True        True
2              New WARD           False      True       False
3        Pediatric Ward            True     False       False
4  Adult Ward, New WARD           False      True        True