你可以试试下面的:
示例数据帧:
df
raw
0 (1T XXX, Europe)
1 (2T YYYY, Latin America)
2 (3T ZZ/ZZZZ, Europe)
3 (4T XXX XXX, Africa)
解决方案 1:
使用str.extract 和regex。
df = df.raw.str.extract(r'\((.*), (.*)\)').rename(columns={0:'Model', 1:'Region'})
print(df)
Model Region
0 1T XXX Europe
1 2T YYYY Latin America
2 3T ZZ/ZZZZ Europe
3 4T XXX XXX Africa
解决方案 2:
str.replace()+str.split() 和rename。
df = df.raw.str.replace('[(|)]' , '').str.split(',', expand=True).rename(columns={0:'Model', 1:'Region'})
print(df)
Model Region
0 1T XXX Europe
1 2T YYYY Latin America
2 3T ZZ/ZZZZ Europe
3 4T XXX XXX Africa
注意:
但是,如果你想同时保留原来的Column,你可以选择下面的方法:
df[['Model', 'Region' ]] = df.raw.str.replace('[(|)]' , '').str.split(',', expand=True)
print(df)
raw Model Region
0 (1T XXX, Europe) 1T XXX Europe
1 (2T YYYY, Latin America) 2T YYYY Latin America
2 (3T ZZ/ZZZZ, Europe) 3T ZZ/ZZZZ Europe
3 (4T XXX XXX, Africa) 4T XXX XXX Africa
或
df[['Model', 'Region' ]] = df.raw.str.extract(r'\((.*), (.*)\)')
print(df)
raw Model Region
0 (1T XXX, Europe) 1T XXX Europe
1 (2T YYYY, Latin America) 2T YYYY Latin America
2 (3T ZZ/ZZZZ, Europe) 3T ZZ/ZZZZ Europe
3 (4T XXX XXX, Africa) 4T XXX XXX Africa