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