【问题标题】:Extract data from certain columns and generate new rows从某些列中提取数据并生成新行
【发布时间】:2020-07-15 20:49:05
【问题描述】:

我有一个熊猫数据框

COL1 COL2 COL3        COL4 
 A    B    C    [{COL5: D1, COL6: E1, COL7: F1},
                 {COL5: D2, COL6: E2, COL7: F2},
                 {COL5: D3, COL6: E3, COL7: F3},
                  ...

                 {COL5: D10, COL6: E10, COL7: F10}]

我想要的输出是:

COL1 COL2 COL3  COL5  COL6  COL7
 A    B    C     D1    E1    F1 
 A    B    C     D2    E2    F2
 A    B    C     D3    E3    F3
...
 A    B    C     D10   E10   F10
                  

有什么方便的方法可以使用吗?

【问题讨论】:

    标签: python pandas dataframe data-science


    【解决方案1】:

    设置

    data = [{"COL5": f"D{i}", "COL6": f"E{i}", "COL7": f"F{i}"} for i in range(1, 4)]
    df = pd.DataFrame({"COL1": ["A"], "COL2": ["B"], "COL3": ["C"], "COL4": [data]})
    
    #   COL1 COL2 COL3                                               COL4
    # 0    A    B    C  [{'COL5': 'D1', 'COL6': 'E1', 'COL7': 'F1'}, {...
    

    explode + join

    u = df.explode('COL4').reset_index(drop=True)
    u.iloc[:, :-1].join(pd.DataFrame(u['COL4'].tolist()))
    

      COL1 COL2 COL3 COL5 COL6 COL7
    0    A    B    C   D1   E1   F1
    1    A    B    C   D2   E2   F2
    2    A    B    C   D3   E3   F3
    

    【讨论】:

    • 非常感谢!这很优雅:)
    猜你喜欢
    • 2022-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-17
    • 1970-01-01
    • 2017-08-27
    相关资源
    最近更新 更多