你可以尝试以下方法:
示例数据框:
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:
使用rename
函数,结合str.replace()
和str.split()
方法。
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
注意:
然而,如果您想保留原始列,那么您可以选择以下方法:
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