pandas - 为什么简单的 pandas 数组函数中的 dtype 从 int64 更改为 float64?
问题描述
我有一个熊猫数据框。如果我通过编写检查日期列的数据类型
analytic_events.date.dtype
我得到结果
dtype('int64')
然而,如果我运行这个简单的数组函数(它从下一行的日期列返回值),类型就会改变
def duration(analytic_event):
return analytic_event.date.shift(-1)
duration(analytic_events)
因此:
Name: date, Length: 3373668, dtype: float64
为什么这个简单的函数不保留列的类型,我将如何重写它来做到这一点?
解决方案
通过移位,您在系列末尾引入了一个空点。那得到填充np.nan
。不幸的是,np.int64
没有与np.float64
.
备选方案 1
用零填充
analytic_event.date.shift(-1).fillna(0, downcast='infer')
备选方案 2
末日斩
pd.Series(analytic_event.date.values[1:], analytic_event.index[:-1], name='date')
推荐阅读
- django - 无法分配“'2'”:“TakenQuiz.question”必须是“Question”实例
- ios - iOS Container View 加载 UIViewController 内容超出范围
- javascript - 如何通过javascript插件/扩展隐藏地址栏、菜单栏等操作跨浏览器窗口?
- c++ - 两个矩形相交的面积
- python - 如何访问模型实例以获取文件数据
- python - 更改未知初始形状列表的所有值
- firebase - 生成新消息时,聊天应用程序如何知道从后端数据库服务器中提取?
- php - 比较 2 个用变量填充的 PHP 文件,将缺少的变量从一个添加到另一个
- angular - 如何让这个响应拦截器在 Angular 中工作?
- sql-server - 数据库图中不可用的更改表结构 (localdb)