pandas - 'NaTType' 对象没有属性 'days'

标签 pandas missing-data

我的数据集中有一列表示以毫秒为单位的日期,有时它的值为 nan (实际上我的列是 str 类型,有时它的值为 'nan' )。我想计算本专栏的天数。问题是,在做两个日期的差异时:

(pd.to_datetime('now') - pd.to_datetime(np.nan)).days

如果是 nan它被转换为 NaT区别在于类型 NaTType没有属性 days .

就我而言,我想要 nan其结果。

我尝试过的其他方法:np.datetime64不能使用,因为它不能作为参数 nan .我的数据无法转换为 intint没有 nan .

最佳答案

即使您先过滤它也会起作用:

In [201]:
df = pd.DataFrame({'date':[dt.datetime.now(), pd.NaT, dt.datetime(2015,1,1)]})
df

Out[201]:
                        date
0 2015-08-28 12:12:12.851729
1                        NaT
2 2015-01-01 00:00:00.000000

In [203]:
df.loc[df['date'].notnull(), 'days'] = (pd.to_datetime('now') - df['date']).dt.days
df

Out[203]:
                        date  days
0 2015-08-28 12:12:12.851729    -1
1                        NaT   NaN
2 2015-01-01 00:00:00.000000   239

关于pandas - 'NaTType' 对象没有属性 'days',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32269676/

相关文章:

python - 如果未在 str.format 中传递,则将值留空

r - 按组填写缺少的日期

python - pandas 中的高效扩展 OLS

python - 如何使用 matplotlib 补丁绘制日历

pandas - 映射数据框中的值

python - 如何删除Python中缺失值过多的列

R控制每行数据帧的连续NA值的数量

R GLM函数省略数据

python - 从字符串中删除最后四位数字 - 将 Zip+4 转换为邮政编码

python - 根据每个唯一 ID 的最新时间戳过滤数据框