2016-02-26 3 views
1

Имея 2 dataframes,Можно ли заполнить DataFrame.mul() fill_value?

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

Вы можете покажи что Пример ввода и вывода данных будут выглядеть? –

+0

обновленный оригинальный пост. – MMM

ответ

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 
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 
Смежные вопросы