【问题标题】:data type of elements in pandas dataframe is not consistent with actual data typepandas 数据框中元素的数据类型与实际数据类型不一致
【发布时间】:2021-09-23 12:46:29
【问题描述】:

我有一个带有“datetime”列的 pandas 数据框,当我运行 df.info() 时,Dtype 显示为 Object。但是,如果我检查每个值,它们都是 datetime.datetime> 为什么不一致,我怎样才能使它成为日期时间或理想情况下 pandas._libs.tslibs.timestamps.Timestamp>?

【问题讨论】:

  • 可能您的列的某些行包含“none”或其他内容,顺便说一下,如果可能的话,您能否显示您的数据框。
  • 您的日期是否包含多个不同的时区/UTC 偏移量?
  • 我无法真正提供我正在使用的数据。我确实想到了 None 并且那些被完全删除了。我什至跑了 df["date_dtype"] = df.date.apply(lambda x: type(x)) ,它们似乎都是 datetime.datetime。
  • 还有一些脏数据,其中年份 = 4024 等。不确定它是否损坏了数据?

标签: python python-3.x pandas datetime


【解决方案1】:

在您的示例中不提供数据,您可以尝试使用此代码检查所有单元格是否具有相同的类型:

 df['column_name'].apply(type).eq(datetime.datetime).all()

如果上一行返回 False,则表示您有一些单元格没有日期时间类型。

要将此列转换为<class pandas._libs.tslibs.timestamps.Timestamp>,您可以使用:

from pandas._libs.tslibs.timestamps import Timestamp
df['column_name'] = Timestamp(df['column_name'])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-09
    • 1970-01-01
    • 2023-01-21
    • 2017-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多