有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
以及
答案 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_like
或fillna
,然后使用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