我的数据框中有一个包含字符串行的列,例如:
'(0.0,0.8638888888888889,3.7091666666666665,12.023333333333333,306.84694444444443)'
此输出(由另一个程序生成)对应于给定变量的min,25th,median,75th和max。
我想提取这些信息,并将它们放在单独的数字列中,例如
min p25 p50
0.0 0.864 3.70
我的数据真的很大。我怎么能在熊猫那里做到这一点?
非常感谢!
答案 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
并将类型转换为浮动,然后索引感兴趣的列。