python - Python - 合并两个数据框问题
问题描述
我正在尝试使用 pandas 合并函数在 python 中合并两个数据集,但我遇到了一些我无法解决的奇怪错误。你能看看,让我知道我在这里做错了什么吗?
这是第一个数据集的列列表和数据类型:FIFA DATA SET
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=('_',''))