从Dataframe列中提取/子串可变长度的数据

时间:2018-01-19 14:11:39

标签: python pandas dataframe

我有一个Dataframe如下:

df
   title     TestData  Value 
0      A  Test1(data)    1.0 
1      B     t(data2)    2.2 
2      C   Ts(data 3)    3.3 

我想从整个TestData列中提取括号内的数据,如下所示:

   title  TestData  Value 
0      A      data    1.0 
1      B     data2    2.2 
2      C    data 3    3.3 

括号的索引不断变化,括号内的字符串长度也在变化。知道怎么做吗?

2 个答案:

答案 0 :(得分:4)

我认为您可以使用str.extract

df['TestData'] = df['TestData'].str.extract(r"\((.*)\)", expand=False)
print (df)
  title TestData  Value
0     A     data    1.0
1     B    data2    2.2
2     C   data 3    3.3

答案 1 :(得分:0)

或者您可以使用str.split

df.TestData=df.TestData.str.split(pat='[(|)]',expand=True)[1]
df
Out[129]: 
  TestData  Value title
0     data      1     A
1    data2      2     B
2   data 3      3     C