从多个数据框中选择数据

时间:2018-10-05 10:49:07

标签: python-3.x

我的工作簿Rule.xlsx具有以下数据。

sheet1:

 group      ordercode      quantity
     0            A             1
                  B             3
     1            C             1
                  E             2
                  D             1

表格2:

group      ordercode      quantity
     0            x             1
                  y             3
     1            x             1
                  y             2
                  z             1

我使用以下方法创建了数据框。

 df1 =data.parse('sheet1')
 df2=data.parse('sheet2')

我想要的结果是使用这两个数据帧编写一个序列。

 df3:

group      ordercode      quantity
     0            A             1
                  B             3
     0            x             1
                  y             3
     1            C             1
                  E             2
                  D             1
     1            x             1
                  y             2
                  z             1

一个来自df1,另一个来自df2。

我想知道如何通过选择组号(例如,组(0),组(1)等)来打印数据。

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

一些评论后的解决方案是:

#create OrderDict of DataFrames
dfs = pd.read_excel('Rule.xlsx', sheet_name=None)
#ordering of DataFrames
order = 'SWC_1380_81,SWC_1382,SWC_1390,SWC_1391,SWM_1380_81'.split(',')

#in loops lookup dictionaries, replace NaNs and create helper column
L = [dfs[x].ffill().assign(g=i) for i, x in enumerate(order)]

#last join together, sorting and last remove helper column
df = pd.concat(L).sort_values(['group','g'])