Python-合并两个数据帧问题

Python-合并两个数据帧问题,python,pandas,Python,Pandas,我试图使用pandas merge函数在python中合并两个数据集,但我遇到了一些我无法解决的奇怪错误。你能看一下让我知道我做错了什么吗 以下是第一个数据集的列列表和数据类型: 国际足联数据集 Nationality object Name object Age int64 Overall int64 Potential int64 Club obj

我试图使用pandas merge函数在python中合并两个数据集,但我遇到了一些我无法解决的奇怪错误。你能看一下让我知道我做错了什么吗

以下是第一个数据集的列列表和数据类型: 国际足联数据集

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这件事发生在我们所有人身上。好的是,您确实提供了一个解决方案,因此很容易找到问题。快乐编码!