Python 在熊猫中设置索引
我正在制作与奥运会相关的数据集 这就是数据帧的外观:Python 在熊猫中设置索引,python,pandas,Python,Pandas,我正在制作与奥运会相关的数据集 这就是数据帧的外观: Unnamed: 0 # Summer 01 ! 02 ! 03 ! Total # Winter \ 0 Afghanistan (AFG) 13 0 0 2 2 0 1 Algeria (ALG) 12 5 2 8 15 3
Unnamed: 0 # Summer 01 ! 02 ! 03 ! Total # Winter \
0 Afghanistan (AFG) 13 0 0 2 2 0
1 Algeria (ALG) 12 5 2 8 15 3
2 Argentina (ARG) 23 18 24 28 70 18
3 Armenia (ARM) 5 1 2 9 12 6
4 Australasia (ANZ) [ANZ] 2 3 4 5 12 0
我想做以下几件事:
- 拆分国家名称和国家代码,并添加国家名称作为数据 帧索引
- 从国家/地区名称中删除多余的不必要字符
Unnamed: 0 # Summer 01 ! 02 ! 03 ! Total # Winter \
0 Afghanistan 13 0 0 2 2 0
1 Algeria 12 5 2 8 15 3
2 Argentina 23 18 24 28 70 18
3 Armenia 5 1 2 9 12 6
4 Australasia 2 3 4 5 12 0
请告诉我实现这一点的正确方法。您可以使用正则表达式并替换为正则表达式,即
df = df.replace('\(.+?\)|\[.+?\]\s*','',regex=True).rename(columns={'Unnamed: 0':'Country'}).set_index('Country')
输出:
Summer 01 ! 02 ! 03 ! Total Winter
Country
Afghanistan 13 0 0 2 2 0
Algeria 12 5 2 8 15 3
Argentina 23 18 24 28 70 18
Armenia 5 1 2 9 12 6
Australasia 2 3 4 5 12 0
拆分得到两列,
country
和country code
,并将country设置为索引:
df2 = pd.DataFrame(df.Unnamed.str.split(' ',1).tolist(), columns = ['Country', 'countryCode']).set_index('Country')
您还可以在数据框中添加国家代码作为附加信息
删除额外的东西,我想是这样的:[ANZ]
,使用regex(如其他答案中所述)
您想删除哪些额外字符的可能重复?你能举个例子吗?编辑有帮助吗@斯潘丹布拉姆哈特非常感谢。在思考如何拆分或使用正则表达式时遇到困难。说清楚了
df['Unnamed:0']=df['Unnamed:0'].str.split('\(').str[0]
@ScottBoston很抱歉我在那里看不到\(
。我太固执了。
df2 = pd.DataFrame(df.Unnamed.str.split(' ',1).tolist(), columns = ['Country', 'countryCode']).set_index('Country')
df2 = df2.replace('\[.*?\]','', regex=True)