[英]Pandas cumulative function of series with dates and NaT
這可能是一個已知的限制,但是當該系列包含NaT時,我正在努力計算該系列在熊貓中的累積最小值。 有沒有辦法使這項工作?
下面的簡單示例:
import pandas as pd
s = pd.Series(pd.date_range('2008-09-15', periods=10, freq='m'))
s.loc[10] = pd.NaT
s.cummin()
ValueError: Could not convert object to NumPy datetime
解決方法是,您可以使用skipna=False
,並“手動”處理NaT:
import pandas as pd
import numpy as np
np.random.seed(1)
s = pd.Series(pd.date_range('2008-09-15', periods=10, freq='m'))
s.loc[10] = pd.NaT
np.random.shuffle(s)
print(s)
# 0 2008-11-30
# 1 2008-12-31
# 2 2009-01-31
# 3 2009-06-30
# 4 2008-10-31
# 5 2009-03-31
# 6 2008-09-30
# 7 2009-04-30
# 8 NaT
# 9 2009-05-31
# 10 2009-02-28
# dtype: datetime64[ns]
mask = pd.isnull(s)
result = s.cummin(skipna=False)
result.loc[mask] = pd.NaT
print(result)
產量
0 2008-11-30
1 2008-11-30
2 2008-11-30
3 2008-11-30
4 2008-10-31
5 2008-10-31
6 2008-09-30
7 2008-09-30
8 NaT
9 2008-09-30
10 2008-09-30
dtype: datetime64[ns]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.