0
現在、私はパンダを習っています。割り当てのために私はデータフレームにマージする必要があります。これは、イランであるものを除いて、私が必要とする上位15のレコードでは成功です。単一のレコードでマージ機能が動作しません
+---------+-------+------------+--------------------+------------+-----------------+-------------------------+----------+----------------+---------------------------+--------------+---------------+
| | Rank | Documents | Citable documents | Citations | Self-citations | Citations per document | H index | Energy Supply | Energy Supply per Capita | % Renewable | 2006 |
+---------+-------+------------+--------------------+------------+-----------------+-------------------------+----------+----------------+---------------------------+--------------+---------------+
| Country | | | | | | | | | | | |
| Iran | 13.0 | 8896.0 | 8819.0 | 57470.0 | 19125.0 | 6.46 | 72.0 | NaN | NaN | NaN | 3.895523e+11 |
| Iran | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 9172000000 | 119.0 | 5.707721 | NaN |
+---------+-------+------------+--------------------+------------+-----------------+-------------------------+----------+----------------+---------------------------+--------------+---------------+
私は実際には「内部」をマージしたいが、その後、イランには結果が示されていない:私は「外」のマージを行うと、それは私にこれを提示します。 2つのイランの記録が合併しなかった原因は何か?
これは私がマージする方法です:
combined2 = pd.merge(combined1, energy, how='outer', on='Country')
combined1
データフレームは、私がチェックし、イランのための単一のレコードが含まれている別のマージ、からです。この私がenergy
データフレームを作成する方法である:
country_dict = {"Republic of Korea": "South Korea",
"United States of America": "United States",
"United Kingdom of Great Britain and Northern Ireland": "United Kingdom",
"China, Hong Kong Special Administrative Region": "Hong Kong",
"Korea, Rep.": "South Korea",
"Iran, Islamic Rep.": "Iran",
"Hong Kong SAR, China": "Hong Kong"}
def convert_county_name(name):
name = re.sub("\(.*\)", "", name)
name = re.sub("[0-9]", "", name)
for k, v in country_dict.items():
name = name.replace(k, v)
return name
en_converters = {1 : lambda x: x * 1000000 if isinstance(x, numbers.Number) else x,
0 : convert_county_name}
energy = pd.read_excel("Energy Indicators.xls",
skiprows = 17,
skip_footer = 38,
parse_cols = [2,3,4,5],
names = ['Country', 'Energy Supply', 'Energy Supply per Capita',
'% Renewable'],
na_values="...",
converters = en_converters)
値 'Iran'が重複しているようで、最高はいくつかの小さなデータサンプルをテストするための使用であります。別の可能性のある問題は、「イラン」や「イラン」のような空白部分です。 – jezrael
どのように愚かなのですか? Jupyterの表では表示されなかったので、特定の要素を印刷したときに、実際に ''イラン ''の後に空白がありました –
ええ、このタイプのエラーは非常に難しいですあなたは前にそれを満たしていない... – jezrael