我在資料框中有這些國家。有些帶有完整的國家名稱,有些帶有 alpha-2。
Country
------------------------
8836 United Kingdom
1303 ES
7688 United Kingdom
12367 FR
7884 United Kingdom
6844 United Kingdom
3706 United Kingdom
3567 UK
6238 FR
588 UK
4901 United Kingdom
568 UK
4880 United Kingdom
11284 France
1273 Spain
2719 France
1386 UK
12838 United Kingdom
868 France
1608 UK
Name: Country, dtype: object
注:Country 部分資料為空。
我將如何創建一個包含 alpha-2 國家代碼的新列?
Country | Country Code
---------------------------------------
United Kingdom | UK
France | FR
FR | FR
UK | UK
Italy | IT
Spain | ES
ES | ES
...
uj5u.com熱心網友回復:
你可以試試這個,正如我之前在評論中提到的那樣。
import pandas as pd
df = pd.DataFrame([[1, 'UK'],[2, 'United Kingdom'],[3, 'ES'],[2, 'Spain']], columns=['id', 'Country'])
#Create copy of country column as alpha-2
df['alpha-2'] = df['Country']
#Create a look up with required values
lookup_table = {'United Kingdom':'UK', 'Spain':'ES'}
#replace the alpha-2 column with lookup values.
df = df.replace({'alpha-2':lookup_table})
print(df)
輸出

uj5u.com熱心網友回復:
您將必須為替換定義一個字典(或找到一個為您完成它的庫)。在我看來,這些縮寫與IBAN 代碼非常接近。但最大的突出點United Kingdom => GB與您的示例相反UK。
我將從 IBAN 代碼開始并定義一個像這樣的大字典:
mappings = {
"Afghanistan": "AF",
"Albania": "AL",
...
}
df["Country Code"] = df["Country"].replace(mappings)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/429567.html
標籤:python-3.x 熊猫 数据框
