如何根据行索引和列名称在两个数据帧之间复用多个值?

问题描述 投票:1回答:2

我有两个数据帧:

DF1

            GOOG AAPL XOM  IBM  Cash
Date                               
2009-01-14  NaN  150  NaN  NaN  NaN
2009-01-21  NaN  -150 NaN  400  NaN

DF2

           GOOG AAPL  XOM  IBM Cash
Date                               
2009-01-14  NaN  100  NaN  NaN  NaN
2009-01-21  NaN  30   NaN  15   NaN

如何将它们相乘以便我可以创建一个看起来像这样的新DF:我基本上试图查看DF1,看看DF2中是否存在索引和列,如果它们存在,则将它们相乘。

值得注意的是,DF1和DF2的索引可能并不完全相同。所以答案必须考虑到这一点。

           GOOG AAPL   XOM  IBM Cash
Date                               
2009-01-14  NaN  15000 NaN  NaN  NaN
2009-01-21  NaN  -4500 NaN  6000 NaN
python pandas
2个回答
2
投票

使用concatgroupby.prod

df = pd.concat([df1,df2])
df.groupby(df.index).prod(min_count=1)
            GOOG   AAPL  XOM     IBM  Cash
Date                                      
2009-01-14   NaN  15000  NaN     NaN   NaN
2009-01-21   NaN  -4500  NaN  6000.0   NaN

1
投票

使用DataFrame.mul应该处理索引:

df1.mul(df2)
© www.soinside.com 2019 - 2024. All rights reserved.