簡體   English   中英

在熊貓中迭代構建多索引數據框

[英]Iteratively build multi-index dataframe in pandas

我有n小型數據框,它們組合成一個多索引數據框。

d1 = DataFrame(np.array([
    ['a', 5, 9],
    ['b', 4, 61],
    ['c', 24, 9]]),
    columns=['name', 'attr11', 'attr22'])

d2 = DataFrame(np.array([
    ['a', 5, 19],
    ['b', 14, 16],
    ['c', 4, 9]]),
    columns=['name', 'attr21', 'attr22'])

d3 = DataFrame(np.array([
    ['a', 5, 19],
    ['b', 14, 16],
    ['d', 10, 14],
    ['c', 4, 9]]),
    columns=['name', 'attr21', 'attr22'])

如何將它們組合成一個數據幀?

結果:

      name attr11 attr21  attr22
d1    a    5    NULL    9
      b    4    NULL    61
      c    24   NULL    9
d2    a    NULL   5    19
      b    NULL   14   16
      c    NULL   4    9
d3    a    NULL   5    19 
      b    NULL   14   16
      c    NULL   4    9
      d    NULL   10   14

您可以在連接后構建多multiindex 您只需要在每個具有數據框ID的框架中添加一列:

frames =[d1,d2,d3]

在每個具有框架ID的框架中添加一列:

for x in enumerate(frames):
    x[1]['frame_id'] = 'd'+str(x[0]+1)

然后連接框架列表,並在所需的列上設置索引:

pd.concat(frames).set_index(['frame_id','name'])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM