Python 根据索引为数据帧分配值

Python 根据索引为数据帧分配值,python,pandas,Python,Pandas,具有数据帧的 col 1 1 2 2 3 3 还有另一个dataframe,我需要在这里输入上一个df的计算值。val列是值与索引的乘积 i j val 1 1 1 1 2 2 1 3 3 2 1 2 2 2 4 2 3 6 3 1 3 3 2 6 3 3 9 我试着用一个循环来计算,但我不认为这个方法是最快的。如何才能以更有效的方式完成此任务?IIUC df2 = pd.Dat

具有
数据帧的

  col
1   1
2   2
3   3
还有另一个
dataframe
,我需要在这里输入上一个
df
的计算值。val列是值与索引的乘积

i   j   val
1   1    1
1   2    2
1   3    3
2   1    2
2   2    4
2   3    6
3   1    3
3   2    6
3   3    9
我试着用一个循环来计算,但我不认为这个方法是最快的。如何才能以更有效的方式完成此任务?

IIUC

df2 = pd.DataFrame(index=pd.MultiIndex.from_product([df.index, df.col])).reset_index()
df2.columns = ['i', 'j']
df2['val'] = df2.i * df2.j

df2
Out[45]: 
   i  j  val
0  1  1    1
1  1  2    2
2  1  3    3
3  2  1    2
4  2  2    4
5  2  3    6
6  3  1    3
7  3  2    6
8  3  3    9
我建议:

 df2['i'] = df.index
 df2['j'] = df.col
 df2['val'] = df2['j'] * df2['i']

是否希望第一个数据帧创建
i
j
的组合?@residentsleep是的,第一个DF应获得第二个DF的值