我有一个熊猫数据框:
In [8]: test
Out[8]:
Product Price
0 Berlin Stret (E10) 12
1 Paris Ave (C12) 34
2 5th Ave (D30) 56
Run Code Online (Sandbox Code Playgroud)
我正在尝试将列产品拆分为 2 列,例如
Product Room Price
0 Berlin Stret E10 12
1 Paris Ave C12 34
2 5th Ave D30 56
Run Code Online (Sandbox Code Playgroud)
我试着用
df['Product'], df['Room'] = df['Product'].str.split('()', 1).str
Run Code Online (Sandbox Code Playgroud)
您可以使用正则表达式extract:
df[['product','room']]= df.Product.str.extract('(.)\s\((.\d+)', expand=True)
Run Code Online (Sandbox Code Playgroud)
输出(小写产品新列):
Product Price product room
0 A (E10) 12 A E10
1 B (C12) 34 B C12
2 C (D30) 56 C D30
Run Code Online (Sandbox Code Playgroud)
或者使用正则表达式“|” 与分裂:
df[['product','room']] = df.Product.str.split('\(|\)', expand=True).iloc[:,[0,1]]
Run Code Online (Sandbox Code Playgroud)
输出:
Product Price product room
0 A (E10) 12 A E10
1 B (C12) 34 B C12
2 C (D30) 56 C D30
Run Code Online (Sandbox Code Playgroud)