Python 三种不同的数据帧行组合

Python 三种不同的数据帧行组合,python,pandas,dataframe,split,iterator,Python,Pandas,Dataframe,Split,Iterator,我正在尝试创建三个不同数据帧的组合,这些数据帧被拆分成行。我有三个数据帧和 A B X1 1 1 X2 2 2 X3 3 3 X4 4 4 C D Y1 5 8 Y2 6 9 Y3 7 10 E Z1 11 Z2 12 我正在尝试处理生成的df1、2、3、4…24数据帧。3数据帧分成行和产品,我指的是这些行的组合,如 df1 df2 df3 df4 df5 df6 df7 df8 X1|

我正在尝试创建三个不同数据帧的组合,这些数据帧被拆分成行。我有三个数据帧和

    A  B
X1  1  1
X2  2  2
X3  3  3
X4  4  4


    C   D
Y1  5   8
Y2  6   9
Y3  7  10


     E
Z1  11
Z2  12
我正在尝试处理生成的df1、2、3、4…24数据帧。3数据帧分成行和产品,我指的是这些行的组合,如

df1   df2   df3   df4   df5   df6   df7   df8
X1|   X1|   X2|   X2|   X3|   X3|   X4|   X4
Y1|   Y1|   Y1|   Y1|   Y1|   Y1|   Y1|   Y1
Z1|   Z2|   Z1|   Z2|   Z1|   Z2|   Z1|   Z2

df9 df10 df11 df12 df13 df14 df15 df16
X1|  X1|  X2|  X2|  X3|  X3|  X4|  X4
Y2|  Y2|  Y2|  Y2|  Y2|  Y2|  Y2|  Y2
Z1|  Z2|  Z1|  Z2|  Z1|  Z2|  Z1|  Z2

df17  df18  df19  df20  df21  df22  df23 df24
X1|   X1|   X2|   X2|   X3|   X3|   X4|   X4
Y3|   Y3|   Y3|   Y3|   Y3|   Y3|   Y3|   Y3
Z1|   Z2|   Z1|   Z2|   Z1|   Z2|   Z1|   Z2

我想尽快赶到。请提供帮助

您可以使用itertools产品获取您要查找的行的组合,并为每组组合筛选到该集合中的行。将每个结果数据帧放入一个列表中,您可以使用希望看到结果的迭代编号调用该列表

import pandas as pd
from itertools import product

df1 = pd.DataFrame({'A': {'X1': 1, 'X2': 2, 'X3': 3, 'X4': 4},
 'B': {'X1': 1, 'X2': 2, 'X3': 3, 'X4': 4}})

df2 = pd.DataFrame({'C': {'Y1': 5, 'Y2': 6, 'Y3': 7}, 'D': {'Y1': 8, 'Y2': 9, 'Y3': 10}})

df3 = pd.DataFrame({'E': {'Z1': 11, 'Z2': 12}})

df = pd.concat([df1,df2,df3])

output = []


for p in product(*[df1.index,df2.index,df3.index]):
    output.append(df[df.index.isin(p)])

output[5]

      A   B   C   D       E
X1  1.0 1.0 NaN  NaN    NaN
Y3  NaN NaN 7.0 10.0    NaN
Z2  NaN NaN NaN  NaN   12.0

output[20]

      A   B   C   D    E
X4  4.0 4.0 NaN NaN  NaN
Y2  NaN NaN 6.0 9.0  NaN
Z1  NaN NaN NaN NaN 11.0