我正在嘗試以這樣一種方式加入兩個資料框,即生成的聯合包含有關它們兩者的資訊。我的資料框類似于:
>> df_1
user_id hashtag1 hashtag2 hashtag3
0000 '#breakfast' '#lunch' '#dinner'
0001 '#day' '#night' NaN
0002 '#breakfast' NaN NaN
第二個資料框包含主題標簽的唯一識別符號及其各自的分數:
>> df_2
hashtag1 score
'#breakfast' 10
'#lunch' 8
'#dinner' 9
'#day' -5
'#night' 6
我想在我的第一個資料框中添加一組列,其中包含每個hashtag使用的分數,例如:
user_id hashtag1 hashtag2 hashtag3 score1 score2 score3
0000 '#breakfast' '#lunch' '#dinner' 10 8 9
0001 '#day' '#night' NaN -5 6 NaN
0002 '#breakfast' NaN NaN 10 NaN NaN
我嘗試使用df.join(),但出現錯誤:“ValueError:您正在嘗試合并物件和 int64 列。如果您希望繼續,您應該使用 pd.concat”
我的代碼如下:
new_df = df_1.join(df_2, how='left', on='hashtag1')
感謝您的幫助,謝謝
uj5u.com熱心網友回復:
你應該嘗試pandas.merge:
pandas.merge(df_1, df_2, on='hashtag1', how='left')
如果要使用.join,需要設定索引df_2。
df_1.join(df_2.set_index('hashtag1'), on='hashtag1', how='left')
一些資源:
- https://pandas.pydata.org/pandas-docs/stable/user_guide/merging.html#database-style-dataframe-or-named-series-joining-merging
- df.join() 的問題:ValueError: You are trying to merge on object and int64 columns
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/474681.html
上一篇:從sql中的多個選項卡中“選擇*”而不重復的最佳方法?
下一篇:加入僅匹配特定記錄的另一個表
