簡體   English   中英

具有日期和NaT的系列的熊貓累積函數

[英]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

錯誤已在Pandas 0.15.2(將發布)中修復


解決方法是,您可以使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM