Python Pandas:如何从数据框列中拆分括号上的列?

ema*_*max 2 python

我有一个熊猫数据框:

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)

Sco*_*ton 6

您可以使用正则表达式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)