繁体   English   中英

从 DataFrame 列中提取字符串数据以分隔列

[英]Extract String Data From DataFrame Column To Separate Columns

我有一个如下所示的数据框列:

df['out_column']

0         Out 0: 0.024 Out 1: 0.005 
1         Out 0: 0.024 Out 1: 0.009 
2         Out 0: 0.024 Out 1: 0.009 
3         Out 0: 0.024 Out 1: 0.01 
4         Out 0: 0.024 Out 1: 0.011           
5         Out 0: 0.017 Out 1: 0.018 
6         Out 0: 0.146 Out 1: 0.081 
7         Out 0: 0.001 Out 1: 0.002 
8         Out 0: 0.022 Out 1: 0.009 
9         Out 0: 0.012 Out 1: 0.008

如何将该列上的数据分开以创建到具有Out 0:Out 1:前面的值的其他列? 预期结果是:

          col1   col2
0         0.024  0.005 
1         0.024  0.009 
2         0.024  0.009 
3         0.024  0.01 
4         0.024  0.011           
5         0.017  0.018 
6         0.146  0.081 
7         0.001  0.002 
8         0.022  0.009 
9         0.012  0.008

您可以使用extractall

df[['col1', 'col2']] = df['out_column'].str.extractall(
    pat=r'.*?\s+\d+:\s+([\d.]+)').unstack(-1)

OUTPUT:

                   out_column   col1   col2
0  Out 0: 0.024 Out 1: 0.005   0.024  0.005
1  Out 0: 0.024 Out 1: 0.009   0.024  0.009
2  Out 0: 0.024 Out 1: 0.009   0.024  0.009
3   Out 0: 0.024 Out 1: 0.01   0.024   0.01
4   Out 0: 0.024 Out 1: 0.011  0.024  0.011
5  Out 0: 0.017 Out 1: 0.018   0.017  0.018
6  Out 0: 0.146 Out 1: 0.081   0.146  0.081
7  Out 0: 0.001 Out 1: 0.002   0.001  0.002
8  Out 0: 0.022 Out 1: 0.009   0.022  0.009
9   Out 0: 0.012 Out 1: 0.008  0.012  0.008

注意:如果需要,请使用df = df.drop('out_columns', 1)

使用带有Out 1Out 2的常规模式,您可以执行str.extract并使用. 几次*

print(df['out_column'].str.extract('Out 0: (.*) Out 1: (.*)'))
       0      1
0  0.024  0.005
1  0.024  0.009
2  0.024  0.009
3  0.024   0.01

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM