将日期时间指定为索引不会给出 DatetimeIndex

2024-01-01

我的 df 有一个名为“天”的字段。我需要从“天”和开始日期创建一个日期时间。可能很麻烦,但它有效:

for t in df.index:
    df.loc[t,'date']=datetime.date(startdate)+
    datetime.timedelta(days=df.loc[t,'days'])
df.index=df.date

当我尝试上采样时:

udf=df.resample('M',how='sum')

I get:

类型错误:仅对 DatetimeIndex、TimedeltaIndex 或 periodIndex,但获得了“Index”的实例

如果我使用日期时间字段设置索引,为什么该索引不会成为日期时间索引(或“DatetimeIndex”)? “date”中的每个条目和索引都是日期时间,不是吗?

type(df.date[0])
<type 'datetime.date'>

type(df.index[0])
<type 'datetime.date'>

解决方法是:

df.index=pd.to_datetime(df.index)

但我找不到任何解释为什么将现有日期时间分配给索引不起作用,但通过 pd.to_datetime(df.index) 将现有日期时间 (df.index) 转换为日期时间却可以。


Pandas 不将 python 转换为原生datetime反对Timestamp对象从中datetimeindexs可以被创建。正在阅读pandas.DatetimeIndex https://pandas.pydata.org/pandas-docs/version/0.23.4/generated/pandas.DatetimeIndex.html文档会有所帮助。

问题是有datetime日期列的对象不会创建 pandasTimestamp目的。熊猫Timestamp是 Pandas 的替代品datetime.datetime

Timestamp 相当于 python 的 Datetime,并且在大多数情况下可以与之互换。它是用于构成 DatetimeIndex 和 pandas 中其他面向时间序列的数据结构的条目的类型。

看看pandas.时间戳 https://pandas.pydata.org/pandas-docs/version/0.23.4/generated/pandas.Timestamp.html文档

df = pd.DataFrame(np.random.randn(10,4), columns = list('abcd')) # sample df
df.index = pd.date_range(start='2018-1-1', end='2018-1-10') # use pandas to create a date range and set index
df['date'] = pd.date_range(start='2018-1-1', end='2018-1-10') # also set as column values
print(f"date column type: {type(df['date'][0])}\ndate index type: {type(df.index)}\n")

df['date'] = df['date'].apply(lambda x: datetime.date(x)) # convert pandas timestamp to datetime.date
print(f"type for datetime.date: {type(df['date'][0])}")

df.set_index('date', inplace=True) # set datetime.date as index
print(f"type for datetime.date as index: {type(df.index)}")

out:

date column type: <class 'pandas._libs.tslibs.timestamps.Timestamp'>
date index type: <class 'pandas.core.indexes.datetimes.DatetimeIndex'>

type for datetime.date: <class 'datetime.date'>
type for datetime.date as index: <class 'pandas.core.indexes.base.Index'>

查看第一和第三个输出:

<class 'pandas._libs.tslibs.timestamps.Timestamp'> vs <class 'datetime.date'>

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将日期时间指定为索引不会给出 DatetimeIndex 的相关文章

随机推荐

  • 单击 UISegmentedControl 的一段后显示多行文本,但最初不是 - 更新代码

    我需要在每个段中设置多行文本UISegmentedControl 我尝试了下面的代码 它工作正常 但问题是 当第一次加载页面时 第一次显示分段控件时 它不显示多行文本 但是当我单击其中一段 文本以多行显示 如何解决这个问题 这是代码 voi
  • 实例方法中的静态变量

    假设我有这个程序 class Foo public unsigned int bar static unsigned int counter 0 return counter int main Foo a Foo b 当然这个例子没有任何意
  • python中access数据库表的读写

    我有一个访问数据库 里面是我创建的几张桌子 我想使用 python 读取其中一个表并列出一列中的所有内容 我想将该列表与程序中已创建的另一个列表进行比较 如果该数字与列表中的数字匹配 则在我制作的访问电子表格的同一行新列中输出 是 同样 如
  • MySQL 查询 - 每组最近的条目

    我正在尝试选择表中每组的最新条目 假设我有一个表 blog posts 其中有一列 id 全部唯一 自动递增 post cat 可以是值 category1 或 category2 或 category3 以及一个 publish stat
  • 如何提高 ASP.NET MVC 中从 SQL Server 数据库获取数据的速度 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我是 ASP NET MVC5 的新手 我有一个模型Shipping and my dbo Shippings sql是这样的 CRE
  • 检查函数是否被调用为装饰器

    在下面的最小示例中decorate被调用两次 第一次使用 decorate 第二个通过正常函数调用decorate bar def decorate func print func name return func decorate def
  • 在 NetworkX 中合并两个加权图

    我使用 python 多重处理来创建多个不同的 NetworkX 图 然后使用下面的函数来组合这些图 然而 虽然这个函数对于小图工作得很好 但对于较大的图 它会使用大量内存 并且会挂在我的系统和内存密集型 AWS 系统上 仅使用系统中总内存
  • 交换两列 - awk、sed、python、perl

    我有一个大文件中的数据 280 列宽 700 万行长 我需要交换前两列 我想我可以使用某种 awk for 循环来执行此操作 打印 2 1 然后打印到文件末尾的范围 但我不知道如何执行范围部分 而且我无法打印 2 1 美元 3 美元 280
  • 在 API 加载之前在 Cordova 中显示 webView

    我正在使用 PhoneGap Cordova 构建适用于 iOS 和 Android 的应用程序 按照标准行为 在 JavaScript 初始化并且 Cordova API 准备就绪之前 不会显示 webView 所以直到我打电话 docu
  • jquery 添加类到这个被点击的元素

    我生成几行 tr 与任务 现在 可以通过单击某个任务将每个任务标记为完成span 我通过 ajax 请求来做到这一点 这是 HTML table tr td 1 td td span class icon complete a to hea
  • foreach 循环和 stdclass 对象

    我在这里看到了类似的问题 但我似乎无法将解决方案应用于我的问题 我有一个名为 results 的变量 它是从 API 获得的 我将更改专有名词以保护我工作的客户 stdClass Object out gt stdClass Object
  • Laravel 混合编译依赖

    我正在尝试使用vuex 模块装饰器 https github com championswimmer vuex module decoratorsLaravel Mix 项目中的库 使用 TypeScript 但我不断收到错误Uncaugh
  • 比较两个 OpenCV 图像/2D Numpy 数组

    我刚开始使用 OpenCV Python 和 Numpy 但已经成为 Java C C 程序员有一段时间了 我正在实现一个 sigma delta 背景检测器 它执行以下操作 设 i1 为第一张图像 设 i2 为第二张图像 for each
  • 将字节数组插入 List 的最简洁方法?

    在某些代码中 我正在创建一个字节列表 并希望在构建它时将一个字节数组插入到该列表中 这样做最干净的方法是什么 请参阅下面的代码 谢谢 public class ListInsert public static byte getData re
  • 安装 MvcScaffolding 包时 NuGet 执行策略错误

    我在项目中使用 Visual Web Developer Express 2010 Windows XP 和 ASP NET MVC4 RC 我安装了 NuGet v2 0 30619 9119 我现在尝试通过 NuGet 包管理器控制台安
  • 在运行脚本的页面上查找 xpath

    我正在尝试使用硒抓取网页 通过检查页面并右键单击建议的 xpath 属于不稳定类型 html body table 2 tbody tr 1 td form table tbody tr 2 所以我尝试了以下解决方案 driver webd
  • 当我们可以创建 String s = "abc" 时,需要什么 String s = new String("abc")

    据我的理解 String s new String abc 将创建两个对象 字符串常量池中的一个 如果 abc 尚未在常量池中 堆内存中的一个 尽管对于实际将创建多少对象以及在何处创建存在多种理解 无论如何 我有以下问题 为什么 Strin
  • 在 NodeJS 中从 Base64 字符串创建图像

    我正在尝试上传从画布中提取并通过 ajax 发布的图像 但在服务器端创建图像文件时遇到问题 我有以下这个答案 https stackoverflow com a 7347358 1358670 https stackoverflow com
  • 在django中使用聚合获取最小值字段名称

    我有一个模型 其中包含如下所示的一些字段 class Choclate models Model name models CharField max length 256 price models IntegerField 所以我想获取具有
  • 将日期时间指定为索引不会给出 DatetimeIndex

    我的 df 有一个名为 天 的字段 我需要从 天 和开始日期创建一个日期时间 可能很麻烦 但它有效 for t in df index df loc t date datetime date startdate datetime timed