gpt4 book ai didi

python - 在 Pandas 中用 Epoch 替换 NaT

转载 作者:太空宇宙 更新时间:2023-11-04 10:23:30 26 4
gpt4 key购买 nike

NaT 缺失值出现在我的数据框的末尾,如下所示。可以理解的是,这会引发 ValueError:

File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pytz/tzinfo.py", line 314, in localize loc_dt = tzinfo.normalize(dt.replace(tzinfo=tzinfo)) ValueError: month must be in 1..12

我尝试同时使用两个 dropna:

data[col_name].dropna(0, inplace=True)

和 fillna,受到 Working with Missing Data section 的鼓励:

data[col_name].fillna(0, inplace=True)

在这两行之前,我尝试通过用纪元时间替换非日期时间来清理数据:

data[col_name] = a_col.apply(lambda x: x if isinstance(x, datetime.datetime)  else epoch)

因为 NaT 在技术上是一个日期时间,所以该函数未涵盖此条件。自 isnull将处理这个,我写了这个函数来应用于数据[col_name]:

def replace_time(x):
if pd.isnull(x):
return epoch
elif isinstance(x, datetime.datetime):
return x
else:
return epoch

尽管它进入了 pd.isnull 部分,但值没有改变。但是,当我在这个系列中尝试该函数时(第二个值是 NaT),它起作用了:

s = pd.Series([pd.Timestamp('20130101'),np.nan,pd.Timestamp('20130102 9:30')],dtype='M8[ns]')

数据:

2003-04-29 00:00:00

NaT

NaT

NaT

最佳答案

尝试:

data[col_name] = a_col.apply(lambda x: x if isinstance(x, datetime.datetime) 
and not isinstance(x, pd.tslib.NaTType) else epoch)

关于python - 在 Pandas 中用 Epoch 替换 NaT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30830776/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com