【问题标题】:Pandas between_time keeps giving index errorPandas between_time 不断给出索引错误
【发布时间】:2022-01-05 04:55:31
【问题描述】:

我是编程新手,我正在构建第一个 python 项目。 我试图在 22:00 到 06:00 之间删除 pandas 数据框中的行。 我正在尝试使用 between_time 函数,但它不断给出错误: 索引必须是 DatetimeIndex 但我已经将索引设置为日期时间字段:

google_fit_df.set_index(['Begintijd'], drop=False)

[数据类型'Begintijd']

[输出]

google_fit_df.between_time('22:00','24:00')

然后我得到以下错误:

TypeError Traceback(最近调用 最后)在 ----> 1 google_fit_df.between_time('22:00','24:00')

~\Anaconda3\lib\site-packages\pandas\core\generic.py 在 between_time(self, start_time, end_time, include_start, include_end, 轴)7974索引= self._get_axis(轴)7975如果 不是实例(索引,日期时间索引): -> 7976 raise TypeError("Index must be DatetimeIndex") 7977 7978 indexer = index.indexer_between_time(

TypeError: Index must be DatetimeIndex

希望任何人都可以告诉我我在这里做错了什么:) 谢谢!

【问题讨论】:

  • 设置索引后,是否真的被识别为DatetimeIntex?

标签: python pandas dataframe datetime


【解决方案1】:

尝试使用不同的格式,就像 Kirubaharan J 在这里发布:https://stackoverflow.com/a/27032197/14481779

format = '%Y-%m-%d %H:%M:%S'
df['Begintijd'] = pd.to_datetime(df['Begintijd'], format=format)
df = df.set_index(pd.DatetimeIndex(df['Begintijd']))

【讨论】:

  • 那行不通,我认为那是因为该字段的原始格式是 00:15:00.000+01:00。当我使用 pd.to_datetime 时,它​​会将 01-01-1900 添加到该字段。如果我更改格式,它将返回 ValueError ValueError: time data 00:00:00.000+01:00 doesn't match format specified
猜你喜欢
  • 1970-01-01
  • 2019-08-02
  • 2019-10-26
  • 1970-01-01
  • 1970-01-01
  • 2018-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多