python keyerror列名报错_Python Pandas合并KeyError

在尝试使用`pd.merge`合并两个数据框时遇到'KeyError: 'video_id''的问题。检查了`video_id`的数据类型并将其强制转换为`int64`,甚至重命名了列,但错误仍然存在。解决方案是避免使用`df.columns.values`来重命名列,可以使用`rename`方法精确地更改列名,或者通过索引修改列名。注意,在合并时,左右数据框的列名不必相同,可以使用`left_on`和`right_on`参数指定不同的列名。
摘要由CSDN通过智能技术生成

Consistently getting a keyerror when I try to merge two data frames. The code:

c = pd.merge(a, b, on='video_id', how='left')

Based on internet research I double checked the dtype and coerced both to int:

a = pd.read_csv(filename, index_col=False, dtype={'video_id': np.int64}, low_memory=False)

b = pd.read_csv(videoinfo, index_col=False, dtype={'video_id': np.int64})

Renamed the columns (to make sure they match):

a.columns.values[2] = "video_id"

b.columns.values[0] = "video_id"

Coerced to df:

c = pd.merge(pd.DataFrame(a), pd.DataFrame(b), on='video_id', how='left')

Out of ideas as to why I'm still getting the keyerror. And it's always "KeyError: 'video_id'"

解决方案

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值