如何从Pandas中的字符串中提取数字信息?

时间:2016-05-05 12:13:40

标签: python regex pandas

我的数据框中有一个包含字符串行的列,例如:

'(0.0,0.8638888888888889,3.7091666666666665,12.023333333333333,306.84694444444443)'

此输出(由另一个程序生成)对应于给定变量的min,25th,median,75th和max。

我想提取这些信息,并将它们放在单独的数字列中,例如

min   p25    p50
0.0   0.864  3.70

我的数据真的很大。我怎么能在熊猫那里做到这一点?

非常感谢!

1 个答案:

答案 0 :(得分:1)

IIUC以下应该有效:

In [280]:
df = pd.DataFrame({'col':['(0.0,0.8638888888888889,3.7091666666666665,12.023333333333333,306.84694444444443)']})
df

Out[280]:
                                                 col
0  (0.0,0.8638888888888889,3.7091666666666665,12....

In [297]:
df[['min','p25','p50']] = df['col'].str.replace('\'|\(|\)','').str.split(',', expand=True).astype(np.float64)[[0,1,2]]
df

Out[297]:
                                                 col  min       p25       p50
0  (0.0,0.8638888888888889,3.7091666666666665,12....  0.0  0.863889  3.709167

因此,使用str.replace' ()字符替换为空白,然后使用逗号分隔str.split并将类型转换为浮动,然后索引感兴趣的列。