根据索引将值分配给数据框

时间:2019-04-26 16:04:04

标签: python pandas

具有dataframe作为

  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

ive试图使用循环来计算它,但是我不认为这种方法是最快的。我怎样才能更有效地做到这一点?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

我建议:

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