用python划分两个数据框

Poi*_*son 2 python division multiple-columns dataframe pandas

我有两个数据框:df1和df2

df1:

TIMESTAMP eq1 eq2 eq3
2016-05-10 13:20:00 40 30 10
2016-05-10 13:40:00 40 10 20
Run Code Online (Sandbox Code Playgroud)

df2:

TIMESTAMP eq1 eq2 eq3
2016-05-10 13:20:00 10 20 30
2016-05-10 13:40:00 10 20 20
Run Code Online (Sandbox Code Playgroud)

我想将df1除以df2:将df1的每一列除以df2的所有列即可得到此结果df3:

TIMESTAMP eq1 eq2 eq3
2016-05-10 13:20:00 40/(10+10) 30/(20+20) 10/(30+20)
2016-05-10 13:40:00 40/(10+10) 10/(20+20) 20/(30+20)
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

jez*_*ael 5

您可以divset_index两列中使用,但之前TIMESTAMP

df1.set_index('TIMESTAMP', inplace=True)
df2.set_index('TIMESTAMP', inplace=True)

print (df1.div(df2).reset_index())
            TIMESTAMP  eq1  eq2       eq3
0 2016-05-10 13:20:00  4.0  1.5  0.333333
1 2016-05-10 13:40:00  4.0  0.5  1.000000
Run Code Online (Sandbox Code Playgroud)

通过评论编辑:

df1.set_index('TIMESTAMP', inplace=True)
df2.set_index('TIMESTAMP', inplace=True)
print (df2.sum())
eq1    20
eq2    40
eq3    50
dtype: int64

print (df1.div(df2.sum()).reset_index())
            TIMESTAMP  eq1   eq2  eq3
0 2016-05-10 13:20:00  2.0  0.75  0.2
1 2016-05-10 13:40:00  2.0  0.25  0.4
Run Code Online (Sandbox Code Playgroud)