我有兩個資料框。我想通過匹配資料框 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)
libcsdataframe1 的列中有 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)
uj5u.com熱心網友回復:
您可以增加指數df由1相匹配的價值libcs和merge:
df.index = 1
dd.merge(df, left_on='libcs', right_index=True)
輸出:
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
uj5u.com熱心網友回復:
用 merge
>>> dd.merge(df, left_on='libcs', right_on=(df.index 1).astype(str))
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
5 TCC-61 61 H94_CGS CG
6 TTG-61 61 H94_CGS CG
7 CTG-61 61 H94_CGS CG
8 ATG-61 61 H94_CGS CG
9 TTT-61 61 H94_CGS CG
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/347391.html
上一篇:如何添加任意數量的資料幀
