这里我有2个数据框架。我试图计算这2个数据帧的相交行的划分。即首先找到同时属于两个数据框架的所有代码,然后将df1中的每个元素除以df2中相应的元素。请注意,df1和df2的代码不一定是相同的长度或序列。(代码是索引但不是数据框架中的列之一)
df1:
code 20180101 20180102 ... 20181231
001 3 5 ... 5
002 2 1 ... 10
003 1 1 ... 5
...
1230 1 2 ... 0.5
1231 2 2 ... 5
df2:
code 20180101 20180102 ... 20181231
001 6 10 ... 10
002 4 3 ... 2
004 1 1 ... 5
...
1230 4 3 ... 1
1231 2 2 ... 5
我尝试合并这两个数据帧,但我不知道下一步该怎么做。或者是否有更有效的方法?我的理想结果是:
code 20180101 20180102 ... 20181231
001 0.5 0.5 ... 0.5
002 0.5 0.3333 ... 5
...
1230 0.25 0.6667 ... 2
1231 1 1 ... 1
对于df1, df2有相同的索引code
,但不一定是相同的长度或顺序,尝试:
df3 = (df1 / df2).dropna()
测试运行:
print(df1)
Output:
20180101 20180102 20181231
code
1 3 5 5
2 2 1 10
3 1 1 5
4 10 20 30
print(df2)
Output:
20180101 20180102 20181231
code
1 6 10 10
2 4 3 2
3 1 1 5
5 20 30 40
df3 = (df1 / df2).dropna()
print(df3)
Output:
20180101 20180102 20181231
code
1 0.5 0.500000 0.5
2 0.5 0.333333 5.0
3 1.0 1.000000 1.0