2016-03-25 5 views
4

Pandasのfill naのカスタム関数を使用できますか?カスタム関数の使用fillnaのシリーズ

s.fillna(ラムダR:R [ "SomeColumn"] ** 2)

私は行全体自体に取ることができるカスタム機能を持っているのが大好きです。

+0

どのようにそれを渡すことができますか?ここのようなhttps://stackoverflow.com/questions/36191286/pandas-fill-na-with-group-value/36191432#36191432 – dmb

答えて

4

value引数には、SeriesまたはDataFrameを指定できます。ですから、事前に正確な値を計算し、変換を使用して約.fillna

fill_value = s['SomeColumn'] ** 2 
s.fillna(fill_value) 
+0

素晴らしい、それはかなりクールです\ –

-2
import numpy as np 
import pandas as pd 
dates = np.arange("2018-01-01" , "2018-01-11", dtype="datetime64[D]") 
minValues = [-10, -5, np.nan, 4, 3, 0, -5, 2, -3, 1] 
maxValues = [3, 4, 6, 7, 3, 7, np.nan, 5, 9, 12] 
df = pd.DataFrame(data=[(mini,maxi) for mini, maxi in zip(minValues,maxValues)], 
         index=dates, columns=['Min Temp', 'Max Temp']) 
print('\n', df) 
df['Margin'] = df['Max Temp'] - df['Min Temp'] 
print('\n', df) 
#choose mean or median 
df['Min Temp'] = df['Min Temp'].fillna(df['Max Temp'] - df['Margin'].median()) 
df['Max Temp'] = df['Max Temp'].fillna(df['Min Temp'] + df['Margin'].mean()) 

print('\n', df.drop('Margin', axis=1)) 
関連する問題