我有两个相同的df,一个带有数据(重复),另一个没有数据。我们称它们为df1
和df2
。但是,df2
与刚刚进行重复数据删除的df1
具有相同的值。
df1
A B C D E
1 1 X1 Company X JB PhD
2 2 Y2 Company Y RA MsC
3 33 W2 Company W JK MsC
4 156 Z1 Company Z SS PhD
5 156 Z1 Company Z SS MsC
df2
A B C D E
1 1
2 2
3 33
4 156
我正在尝试根据df2
的第一列映射其他列中的值。但是我想像下面这样合并df1
中每个重复行的每一列中的唯一值
df2
A B C D E
1 1 X1 Company X JB PhD
2 2 Y2 Company Y RA MsC
3 33 W2 Company W JK MsC
4 156 Z1 Company Z SS PhD;MsC
请记住,每个df中有27列,并且列1的每个重复行对该行只有一个唯一值。我到达这里是因为我尝试在df1
的列上使用.drop_duplicates()
和.unique()
的混合来对df1
进行重复数据删除,但是表的大小使我很难知道'm删除正确的值。
答案 0 :(得分:0)
您可以使用groupby().agg()
:
df2[['A']].merge(df1.groupby('A', as_index=False)
.agg(lambda x: ';'.join(x.unique())),
on='A', how='left'
)