Python-合并两个数据帧问题
我试图使用pandas merge函数在python中合并两个数据集,但我遇到了一些我无法解决的奇怪错误。你能看一下让我知道我做错了什么吗 以下是第一个数据集的列列表和数据类型: 国际足联数据集Python-合并两个数据帧问题,python,pandas,Python,Pandas,我试图使用pandas merge函数在python中合并两个数据集,但我遇到了一些我无法解决的奇怪错误。你能看一下让我知道我做错了什么吗 以下是第一个数据集的列列表和数据类型: 国际足联数据集 Nationality object Name object Age int64 Overall int64 Potential int64 Club obj
Nationality object
Name object
Age int64
Overall int64
Potential int64
Club object
Value object
Wage object
Preferred Foot object
Weak Foot float64
Skill Moves float64
Position object
Jersey Number float64
Joined object
Weight object
dtype: object
这是第二个数据集:
GDP数据集:
Nationaility object
Population float64
GDP float64
dtype: object
以下是我使用的代码:
master_df = pd.merge(fifa_subset, gdp_subset, on = "Nationaility", how =
"right", suffixes=('_',''))
我得到了这个错误:
C:\Anaconda3\lib\site-packages\pandas\core\reshape\merge.py in
__init__(self, left, right, how, on, left_on, right_on, axis, left_index,
right_index, sort, suffixes, copy, indicator, validate)
549 (self.left_join_keys,
550 self.right_join_keys,
--> 551 self.join_names) = self._get_merge_keys()
552
553 # validate the merge keys dtypes. We may need to coerce
C:\Anaconda3\lib\site-packages\pandas\core\reshape\merge.py in
_get_merge_keys(self)
855 right_keys.append(
856 right._get_label_or_level_values(
--> 857 rk, stacklevel=stacklevel))
858 else:
859 # work-around for
merge_asof(right_index=True)
C:\Anaconda3\lib\site-packages\pandas\core\generic.py in
_get_label_or_level_values(self, key, axis, stacklevel)
1380 values = self.axes[axis].get_level_values(key)._values
1381 else:
-> 1382 raise KeyError(key)
1383
1384 # Check for duplicates
KeyError: 'Nationaility'
正如@ALollz在上面所评论的,如果您决定保持列名不变,那么下面是完整的代码
master_df = pd.merge(fifa_subset, gdp_subset, left_on = "Nationality", right_on = "Nationaility", how = "right", suffixes=('_',''))
你有两个不同的列名,所以你需要
左上class='national',右上class='Nationality'
,或者你可以在没有输入错误的情况下重命名该列。关键:开,所以很快就关闭,回答它们不会赢得代表。我现在感到很尴尬。这确实是打字错误的问题,我花了几个小时试图解决问题,但因为我打字错误的方式太相似了,我的眼睛没有注意到。非常感谢你们两位,我为在这么简单的事情上浪费你们的时间而道歉。@Slavisha这件事发生在我们所有人身上。好的是,您确实提供了一个解决方案,因此很容易找到问题。快乐编码!