【发布时间】:2021-06-28 23:41:36
【问题描述】:
我有一个数据框浮点列:
data = {'mydate': [23131.0,23131.0,np.nan,22677.0,22554.0,np.nan,23131.0]}
df = pd.DataFrame(data,columns=['mydate'])
mydate
0 23131.0
1 23131.0
2 NaN
3 22677.0
4 22554.0
5 NaN
6 23131.0
它包含空值。我正在尝试使用以下代码将其转换为 datetime python
def dayym(unit):
dates = {date:((epoch + datetime.timedelta(days=date))) for date in unit.unique()}
return unit.map(dates)
df.loc[:,'mydate']= dayym(df['mydate'])
出现以下错误:
dates = {date:((epoch + datetime.timedelta(days=date))) for date in unit.unique()}
File "central_read.py", line 18, in <dictcomp>
dates = {date:((epoch + datetime.timedelta(days=date))) for date in unit.unique()}
ValueError: cannot convert float NaN to integer
任何想法。在这一点上,我已经不在了。
【问题讨论】:
-
请提供预期的MRE - Minimal, Reproducible Example。显示中间结果与预期结果的偏差。我们应该能够将您的代码块粘贴到文件中,运行它并重现您的问题。这也让我们可以在您的上下文中测试任何建议。 Include your minimal data frame 作为示例的一部分。
-
data = {'mydate': [23131.0,23131.0,np.nan,22677.0,22554.0,np.nan,23131.0]} df = pd.DataFrame(data,columns=['mydate'] )
-
23131代表什么?它是另一个日期的相对数字吗?
-
如果是 excel 时间格式,请参阅 Convert Excel style date with pandas