Python 熊猫-如何生成指数和数据的笛卡尔乘积?

Python 熊猫-如何生成指数和数据的笛卡尔乘积?,python,pandas,Python,Pandas,如何实现想要的 我已经通读并尝试了所有的merge组合。一个简单的方法是使用pandas.MultiIndex.from\u product: >>> y = pandas.DataFrame.from_dict({'{}': {'A': 0.2, 'B': 0.3, 'C': 0.4, 'D': 0.1}}) >>> z = pandas.DataFrame.from_dict({'{}': {'L': 0.25, 'M': 0.35, 'N': 0.10

如何实现
想要的


我已经通读并尝试了所有的
merge
组合。

一个简单的方法是使用
pandas.MultiIndex.from\u product

>>> y = pandas.DataFrame.from_dict({'{}': {'A': 0.2, 'B': 0.3, 'C': 0.4, 'D': 0.1}})

>>> z = pandas.DataFrame.from_dict({'{}': {'L': 0.25, 'M': 0.35, 'N': 0.10, 'O': 0.30}})

>>> y
    {}
A  0.2
B  0.3
C  0.4
D  0.1

>>> z
     {}
L  0.25
M  0.35
N  0.10
O  0.30

>>> want(y, z)
       {}
A L 0.050
A M 0.070
A N 0.020
A O 0.060
B L 0.075
B M 0.105
B N 0.030
B O 0.090
C L 0.100
C M 0.140
C N 0.040
C O 0.120
D L 0.025
D M 0.035
D N 0.010
D O 0.030
结果:

index = pandas.MultiIndex.from_product([y.index, z.index])
s = pandas.Series([y.loc[i[0], '{}'] * z.loc[i[1], '{}'] for i in index], index=index)

是否希望前两列成为索引?是。不是数据。它们代表事件。
A  L    0.050
   M    0.070
   N    0.020
   O    0.060
B  L    0.075
   M    0.105
   N    0.030
   O    0.090
C  L    0.100
   M    0.140
   N    0.040
   O    0.120
D  L    0.025
   M    0.035
   N    0.010
   O    0.030
dtype: float64