gpt4 book ai didi

Python Pandas - 即使数据帧中存在相同的列,pd.merge 上也会出现 KeyError

转载 作者:行者123 更新时间:2023-12-01 08:28:44 24 4
gpt4 key购买 nike

我正在尝试连接多个列上的两个数据框。即使所有列都存在于两个数据框中,我在执行 pd.merge 时也会遇到关键错误。

当我尝试进行 .join 时,我得到了“ValueError:len(left_on) 必须等于“right”索引中的级别数”

数据框 1:

>>data.columns
Index(['weather.description', 'weather.icon', 'weather.id', 'weather.main',
'dt', 'main.pressure', 'main.temp_min', 'main.temp_max', 'main.temp',
'main.humidity', 'main.grnd_level', 'main.sea_level', 'wind.speed',
'wind.deg', 'wind.gust', 'id', 'day', 'month', 'hour', 'dd', 'year'],
dtype='object')

>>data.dtypes
weather.description object
weather.icon object
weather.id int64
weather.main object
dt object
main.pressure float64
main.temp_min float64
main.temp_max float64
main.temp float64
main.humidity int32
main.grnd_level float64
main.sea_level float64
wind.speed float64
wind.deg float64
wind.gust float64
id float64
day object
month object
year object
hour object
dd object
dtype: object

数据框 2:

>>df_crime.columns
Index(['beat', 'disposition', 'event_date', 'event_number', 'general_location',
'location_1', 'map_x', 'map_y', 'type', 'type_description', 'ward',
'day', 'year', 'month', 'dd', 'hour'],
dtype='object')

>>df_crime.dtypes
beat object
disposition object
event_date object
event_number object
general_location object
location_1 object
map_x float64
map_y float64
type object
type_description object
ward float64
day object
year object
month object
dd object
hour object
dtype: object

内连接查询:

result = pd.merge(data,
df_crime[['type_description']],
on=['year','month','dd','hour']
)

错误:

KeyError: 'year'

我在这里缺少什么?

最佳答案

我认为您需要合并中的'year','month','dd','hour'列:

当您在合并中仅采用 df_crime[['type_description']] 时,您会错过其他列。

您的 on 有 4 列,所有列都应出现在您在 pd.merge() 内获取的数据帧切片中

检查docs ,您可以在其中使用 suffixes= 方法来区分公共(public)列(仅供引用)

关于Python Pandas - 即使数据帧中存在相同的列,pd.merge 上也会出现 KeyError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54042178/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com