DataFrame和Series之间按元素进行乘法运算返回NaN

时间:2019-08-13 22:54:32

标签: python pandas

我有一个time系列和一个flag DataFrame:

time
          0
action  -1.0
activ    1.0
actual   1.0

time.index
Index(['action', 'activ', 'actual'], dtype='object')

flag
        2000-05-10  2006-06-29
Entry                         
action    1.386294    1.386294
activ     0.000000    1.000000
actual    0.000000    0.000000

flag.index
Index(['action', 'activ', 'actual'], dtype='object', name='Entry')

我想在两者之间进行分段乘法:

flag.mul(time, axis=1)

        2000-05-10 00:00:00  2006-06-29 00:00:00   0
Entry                                               
action                  NaN                  NaN NaN
activ                   NaN                  NaN NaN
actual                  NaN                  NaN NaN

但是,我期望得到这样的结果:

        2000-05-10  2006-06-29
Entry                         
action   -1.386294   -1.386294
activ     0.000000    1.000000
actual    0.000000    0.000000

怎么了?

1 个答案:

答案 0 :(得分:1)

尝试将代码更改为

flag.mul(time['0'], axis=0)
Out[286]: 
        2000-05-10  2006-06-29
Entry                         
action   -1.386294   -1.386294
activ     0.000000    1.000000
actual    0.000000    0.000000

您的代码中的问题,数据帧mul和数据帧,它们应该都具有相同的indexcolumns,在您的情况下,您应该使用pd.Series,我们也应该选择axis=0