Python 3.7 无法合并 2 个数据框

Python 3.7 Unable to merge 2 dataframe's

我正在尝试将两个数据框合并在一起。 df1 基于其他文件 (GTFS -routes,trips,stop_times) 的合并,df2 是 stop_times 文件

当我尝试合并时,我收到一条 ValueError 消息:

ValueError: You are trying to merge on object and int64 columns. If you wish to proceed you should use pd.concat

我想合并 df,我已经确认我尝试合并的两个键都是字符串对象。

我使用以下尝试合并两个 df

df3 = df1.join(df2, how='inner', on='stop_id')

我已经尝试按照 的建议将 df 写入文件并再次读取,并使用 df.stop_id = df.stop_id.astype('str')

将两列转换为字符串对象

我在文件中读到明确指出所有列都是字符串

df2= pd.read_csv('stops.txt', dtype={'stop_id': 'str',
                                     'stop_code': 'str',
                                     'stop_name': 'str',
                                     'stop_lat': 'str',
                                     'stop_lon': 'str',
                                     'location_type': 'str',
                                     'parent_station': 'str',
                                     'wheelchair_boarding': 'str',
                                     'platform_code': 'str'})

并检查数据类型

df1.stop_id.dtype
df2.stop_id.dtype

两者都产生

dtype('O')

但是合并还是失败,出现上面的错误。我该如何解决这个问题?

尝试pd.merge合并两个数据帧

首先在两个数据帧str中转换stop_id

df1['stop_id'] = df1['stop_id'].astpye(str)
df2['stop_id'] = df2['stop_id'].astpye(str)

df3 = pd.merge(df1,df2,how='inner',on=['stop_id'])