Python 2.7下Pandas DataFrame按user_id合并报错求助
排查pandas合并DataFrame的语法错误
嘿,我一眼就瞅出问题所在啦!你这里踩了个超常见的语法小坑——pandas的merge是函数,不是可索引的对象,你居然用方括号[]来调用它,这可不报错才怪呢!
在Python里,函数调用必须用圆括号(),方括号[]是用来访问列表、字典这类可索引对象元素的。你写的代码:
pd.merge[s_data, data, how='inner',left_on='user_id', right_on='user_id'].head()
完全不符合函数调用的语法规范,这就是报错的核心原因。
给你修正后的正确代码:
pd.merge(s_data, data, how='inner', left_on='user_id', right_on='user_id').head()
另外,因为两个DataFrame的连接字段名称完全一致(都是user_id),你还可以简化代码,不用分别指定left_on和right_on,直接用on参数就行:
pd.merge(s_data, data, how='inner', on='user_id').head()
额外提一句,因为两个DataFrame里还有重名的列(bdn和preference_bdn),合并后pandas会自动给这些列加上_x(来自左表)和_y(来自右表)的后缀。如果你想自定义后缀,可以用suffixes参数:
pd.merge(s_data, data, how='inner', on='user_id', suffixes=('_from_sdata', '_from_data')).head()
这个问题和你用Python2.7关系不大,就是基础的函数调用语法错误,改完应该就能正常运行啦!
内容的提问来源于stack exchange,提问作者user3476463
相关产品推荐
相关产品推荐

