【发布时间】:2021-11-04 05:20:32
【问题描述】:
我有两个数据框。我想通过匹配数据框 1 中的列信息,将第二个数据框的列添加到第一个数据框。
第一个数据框:dd
BCS libcs
0 AAA-1 1
1 ABA-1 1
2 ACD-1 1
3 AAT-1 1
4 AAR-1 1
... ...
188453 TCC-61 61
188454 TTG-61 61
188455 CTG-61 61
188456 ATG-61 61
188457 TTT-61 61
print(dd.shape)
(188458, 2)
第二个数据框:df
sample_id DState
0 H20_AGS AG
1 H21_AGS AG
2 H22_BGS BG
3 H23_AGS AG
4 H24_CGS CG
.. ... ...
56 H90_DGS DG
57 H91_DGS DG
58 H92_BGS BG
59 H93_BGS BG
60 H94_CGS CG
print(df.shape)
(61, 2)
dataframe1 的 libcs 列有 61 个唯一项,第二个数据帧有 61 行。我想根据匹配的列信息进行合并。
预期输出:
BCS libcs sample_id DState
0 AAA-1 1 H20_AGS AG
1 ABA-1 1 H20_AGS AG
2 ACD-1 1 H20_AGS AG
3 AAT-1 1 H20_AGS AG
4 AAR-1 1 H20_AGS AG
... ...
188453 TCC-61 61 H94_CGS CG
188454 TTG-61 61 H94_CGS CG
188455 CTG-61 61 H94_CGS CG
188456 ATG-61 61 H94_CGS CG
188457 TTT-61 61 H94_CGS CG
我尝试了下面的代码,但它似乎不起作用
dd.libcs.value_counts()
dd.index = dd.groupby(level=0).cumcount()
C = dd.join(df).reset_index(drop=True)
print (C)
【问题讨论】:
-
共同关系是dataframe2中的行数和dataframe1的column2中唯一出现的次数相同。