如何使用两个数据框的交集作为索引,然后一个除以另一个



这里我有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

相关内容

  • 没有找到相关文章