该
on参数 仅适用于调用Dataframe !
on:调用者中的列或索引级别名称要在其他索引中联接,否则就联接index-on-index。
尽管您指定
on='id'了它将使用
'id'pdf(这是一个对象),并尝试将其与采用整数值的outputsPdf的索引连接。
如果需要
join跨两个Dataframe的非索引列,则可以将它们设置为索引,或者必须将其
merge用作 同时* 应用于 两个
Dataframe的
on参数。
pd.merge*
例
import pandas as pddf1 = pd.Dataframe({'id': ['1', 'True', '4'], 'vals': [10, 11, 12]})df2 = df1.copy()df1.join(df2, on='id', how='left', rsuffix='_fs')ValueError:您正在尝试合并object和int64列。如果要继续,则应使用pd.concat
另一方面,这些工作:
df1.set_index('id').join(df2.set_index('id'), how='left', rsuffix='_fs').reset_index()# id vals vals_fs#0 1 10 10#1 True 11 11#2 4 12 12df1.merge(df2, on='id', how='left', suffixes=['', '_fs'])# id vals vals_fs#0 1 10 10#1 True 11 11#2 4 12 12


