连接不同数据框中的值

Join values in different dataframes

我正在尝试以这样一种方式连接两个数据帧,使得生成的联合包含关于它们的信息。我的数据框类似于:

>> 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')

感谢任何帮助,谢谢

你应该试试 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')

部分资源: