【发布时间】:2020-10-27 18:07:55
【问题描述】:
我的df结构如下(例如):
根据评论编辑数据
import pandas as pd
data = {'ID':["abc", "abc", "123", "xyz", "xyz"], 'valid':[["A", "B"], [], [], ["A", "B", "C"], []],
'not_valid':[[], ["C", "D"], ["A", "B", "C", "D"], [], ["D"]],
'other_data': ["1", "1", "3", "4", "4"]}
df = pd.DataFrame(data)
这给出了:
ID valid not_valid other_data
abc [A, B] [] 1
abc [] [C, D] 1
123 [] [A, B, C, D] 3
xyz [A, B, C] [] 4
xyz [] [D] 4
我想要的结果如下:
ID valid not_valid other_data
abc [A, B] [C, D] 1
123 [] [A, B, C, D] 3
xyz [A, B, C] [D] 4
我想知道如何将每个唯一 ID 的两列 valid 和 not_valid 合并在一起(并非每个 ID 都必须有两个条目,如本例中的 123)。
虽然我可以删除重复项
df.drop_duplicates(subset=['ID']).reset_index()
我显然丢失了重复 ID 的一半数据。
【问题讨论】: