【问题标题】:Create a row for each record separated by some pattern为由某种模式分隔的每条记录创建一行
【发布时间】:2022-01-26 11:56:35
【问题描述】:

我需要在 pandas 数据框中为 "ativos" 列中的每条记录创建一行,并且必须重复其他数据 ("nome")。在"ativos" 列中,记录由该字符串"\r\n" 分隔。但是,我不知道如何正确地做到这一点。

   nome            activos
0  Luiz  ABC\r\nDEF\r\nGHI

预期结果:

   nome activos
0  Luiz     ABC
1  Luiz     DEF
2  Luiz     GHI

【问题讨论】:

    标签: pandas dataframe split exploded


    【解决方案1】:

    使用str.splitexplode

    out = df.assign(activos=df['ativos'].str.split(r'\\r\\n')).explode('ativos')
    print(out)
    
    # Output
       nome ativos
    0  Luiz    ABC
    0  Luiz    DEF
    0  Luiz    GHI
    

    设置:

    df = pd.DataFrame({'nome': ['Luiz'], 'ativos': [r'ABC\r\nDEF\r\nGHI']})
    print(df)
    
    # Output
       nome             ativos
    0  Luiz  ABC\r\nDEF\r\nGHI
    

    【讨论】:

      【解决方案2】:

      您可以使用splitexplode

      df['activos'] = df['activos'].str.split(r'\\r\\n')
      df.explode('activos', ignore_index=True)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-07-04
        • 1970-01-01
        • 1970-01-01
        • 2014-05-08
        • 1970-01-01
        • 2016-11-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多