2016-10-27 9 views
3

DataFrameを日付順に索引付けしています。私はインデックスがいくつかの値(今日のような)より大きいが、DataFrameにそれらを保持するすべての行をNULLにすることができるようにしたいと思います。これを行う最善の方法は何ですか?例えばmaskためDataFrame.maskこの条件付きでPandasの列全体をNaN/Noneに設定します

10/20/16 15, 20 
10/25/16 13, 12 
10/30/16 16, 15 

#--> 10/30/16 should go to NaN, NaN 

答えて

5

ソリューションは、df必要に応じて同じindexある:

#convert index to datetime 
df.index = pd.to_datetime(df.index) 

mask = pd.Series(df.index > pd.datetime.today(), index=df.index) 
print (mask) 
Date 
2016-10-20 False 
2016-10-25 False 
2016-10-30  True 
dtype: bool 

df = df.mask(mask) 
print (df) 
       a  b 
Date     
2016-10-20 15.0 20.0 
2016-10-25 13.0 12.0 
2016-10-30 NaN NaN 
3
df.loc[df.index > pd.datetime.today()] = np.nan 
df 

enter image description here

関連する問題