繁体   English   中英

从某些列中提取数据并生成新行

[英]Extract data from certain columns and generate new rows

我有一个 pandas dataframe

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}]

我想要的 output 将是:

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
                  

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

设置

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

暂无
暂无

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

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