【问题标题】:Extract String Data From DataFrame Column To Separate Columns从 DataFrame 列中提取字符串数据以分隔列
【发布时间】:2021-08-21 00:15:50
【问题描述】:

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

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

【问题讨论】:

    标签: python pandas string numpy jupyter


    【解决方案1】:

    你可以使用extractall:

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

    输出:

                       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)

    【讨论】:

      【解决方案2】:

      使用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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-08-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-08-11
        • 1970-01-01
        相关资源
        最近更新 更多