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