這個問題在這里已經有了答案: 熊貓合并 101 (6 個回答) 昨天關閉。
我有這兩個資料框 df1 - 有 5 行
|id|name|age|weight|
|1 |aaaa|16 | 56 |
|2 |bbbb|17 | 60 |
|3 |cccc|18 | 56 |
|4 |dddd|16 | 61 |
|5 |ffff|20 | 75 |
df2 - 也有 5 行具有相同的 id 但未排序
|id|rate|
|5 |0.75|
|1 |0.80|
|3 |0.92|
|4 |0.86|
|2 |0.77|
現在我需要將它們合并成這樣的 df3
|id|name|age|weight|rate|
|1 |aaaa|16 | 56 |0.80|
|2 |bbbb|17 | 60 |0.77|
|3 |cccc|18 | 56 |0.92|
|4 |dddd|16 | 61 |0.86|
|5 |ffff|20 | 75 |0.75|
提前致謝
uj5u.com熱心網友回復:
如果您有與此類似的 df_1:
id name col1
0 1 foo 42
1 2 bar 43
和 df_2 類似:
id rate
0 2 -1
1 1 1
您可以使用joinpandas ( doc ) 中的方法:
df_1.join(df_2.set_index("id"), on="id")
這使
id name col1 rate
0 1 foo 42 1
1 2 bar 43 -1
uj5u.com熱心網友回復:
我建議您使用熊貓的合并功能。它將允許您指定要在兩個資料幀上執行的連接型別。
pd.merge(left = first_dataframe, right = second_dataframe, how = 'specify the type of join here like left, right, inner etc..', on = 'specify the column here')
以下是一些可用于參考合并功能的檔案。 https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.merge.html
uj5u.com熱心網友回復:
使用merge:
>>> df1.merge(df2, on='id')
id name age weight rate
0 1 aaaa 16 56 0.80
1 2 bbbb 17 60 0.77
2 3 cccc 18 56 0.92
3 4 dddd 16 61 0.86
4 5 ffff 20 75 0.75
閱讀Pandas 合并 101
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/369037.html
下一篇:如何獲取給定索引的資料幀的前一行
