预先感谢您的帮助和时间。
相关信息如下:
ASIA
AFGHANISTAN 5,000 JORDAN 1,188 SAUDI ARABIA 619
BAHRAIN 8 KUWAIT 162
AFRICA
ALGERIA 5,142 ERITREA 211 MOZAMBIQUE 7
ANGOLA 582 ESWATINI 2 NAMIBIA 10
使用pandas,如何对
Asia
列中的亚洲国家和African
列中的非洲国家进行排序?
如何将国家/地区名称与数字分开以便稍后求和。
我尝试从网页复制该信息并将其粘贴到excel中,然后用pandas读取它,但我得到的只是下面的介绍,无法进行任何操作:
AFRICA Unnamed: 1 Unnamed: 2
0 ALGERIA 5,142 ERITREA 211 MOZAMBIQUE 7
1 ANGOLA 582 ESWATINI 2 NAMIBIA 10
最简单的方法是创建一个完成这项工作的函数
import pandas as pd
import re
data_asia = [
"AFGHANISTAN 5,000",
"BAHRAIN 8",
"JORDAN 1,188",
"KUWAIT 162",
"SAUDI ARABIA 619"
]
data_africa = [
"ALGERIA 5,142",
"ANGOLA 582",
"ERITREA 211",
"ESWATINI 2",
"MOZAMBIQUE 7",
"NAMIBIA 10"
]
def separate_countries_numbers(data):
countries = []
numbers = []
for item in data:
split_data = re.split(r'\s(?=\d)', item)
country = split_data[0]
number = split_data[1].replace(",", "")
countries.append(country)
numbers.append(int(number))
return pd.DataFrame({"Country": countries, "Number": numbers})
df_asia = separate_countries_numbers(data_asia)
df_africa = separate_countries_numbers(data_africa)
df_asia, df_africa
返回
( Country Number
0 AFGHANISTAN 5000
1 BAHRAIN 8
2 JORDAN 1188
3 KUWAIT 162
4 SAUDI ARABIA 619,
Country Number
0 ALGERIA 5142
1 ANGOLA 582
2 ERITREA 211
3 ESWATINI 2
4 MOZAMBIQUE 7
5 NAMIBIA 10)