是否可以使用DataFrame.mul()fill_value进行填充?

时间:2016-02-26 19:23:23

标签: python pandas

有2个数据帧,

df

other

,使用相同的列,我可以看到fill_value参数:

DataFrame.mul(other, fill_value=...)

有以下解释:

fill_value : None or float value, default None
Fill missing (NaN) values with this value. If both DataFrame locations are missing, the result will be missing

如何使用填充前导行为进行乘法运算,以便df中不在other中的那些行,我会在其他行中填充该行,但仍会得到结果行?

以下是一个例子:

df

1/1/2016 10
2/1/2016 20 
3/1/2016 25 

other

1/1/2016 1.5
3/1/2016 1.7

我希望df.mul(其他)像其他人一样行事

2/1/2016 1.5 

以及

2 个答案:

答案 0 :(得分:1)

您可以先重新索引other

df.mul(other.reindex(df.index, method='ffill'))

示例:

>>> df
             1
2016-01-01  10
2016-02-01  20
2016-03-01  25

>>> other
              1
2016-01-01  1.5
2016-03-01  1.7

>>> df.mul(other.reindex(df.index, method='ffill'))
               1
2016-01-01  15.0
2016-02-01  30.0
2016-03-01  42.5

答案 1 :(得分:0)

您可以先使用reindex reindex_likefillna,然后使用mul

print df
             A
2016-01-01  10
2016-02-01  20
2016-03-01  25

print df1
              A
2016-01-01  1.5
2016-03-01  1.7

df1 = df1.reindex(df.index).fillna(method='ffill')
#df1 = df1.reindex_like(df).fillna(method='ffill')
print df1

              A
2016-01-01  1.5
2016-02-01  1.5
2016-03-01  1.7


print df.mul(df1)
               A
2016-01-01  15.0
2016-02-01  30.0
2016-03-01  42.5