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)