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'])
我正在尝试将两个数据框合并在一起。 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.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'])