2016-05-11 12 views
4

私はNaTで置き換える必要のあるいくつかのNaNを持つシリーズを持っています。これどうやってするの?パンダはNaNをNaTに置き換えます

ここで私はこれまで試したものとの単純な例です:

>>> s = pd.Series([np.NaN, np.NaN]) 
>>> s.fillna(pd.NaT) 
0 NaN 
1 NaN 
dtype: float64 
>>> s.replace(np.NaN, pd.NaT) 
0 NaN 
1 NaN 
dtype: float64 
>>> s.where(pd.notnull(s), pd.NaT) 
0 NaN 
1 NaN 
dtype: object 

パンダバージョン:0.16.2

numpyのバージョン:1.9.2

Pythonのバージョン:2.7.10を

+0

使ってパンダがところで作品s.where' '三v0.18.0。 –

+0

あなたの3番目のものは '0.18.0'で動作しない' s.where(pd.isnull(s)、pd.NaT) 'でなければなりません。 – EdChum

答えて

7

dtypefloatときNaTとしてdtype最初は意味が変換します当初dtype:あなたはシリーズで非NaN値を持っている場合

In [90]: 
s.astype(np.datetime64).fillna(pd.NaT) 

Out[90]: 
0 NaT 
1 NaT 
dtype: datetime64[ns] 

その後、to_datetimeを使用します。

In [97]: 
s = pd.Series([np.NaN, np.NaN, 1.0]) 
pd.to_datetime(s) 

Out[97]: 
0        NaT 
1        NaT 
2 1970-01-01 00:00:00.000000001 
dtype: datetime64[ns] 
関連する問題