gpt4 book ai didi

python - 尝试转换格式为 10/2/2012 9:00:00 AM 时出现错误 : invalid unit abbreviation:/,

转载 作者:行者123 更新时间:2023-11-30 09:04:08 25 4
gpt4 key购买 nike

我正在使用 pandas 通过使用以下代码将具有日期和时间的列转换为秒:

df['date_time'] = pd.to_timedelta(df['date_time'])
df['date_time'] = df['date_time'].dt.total_seconds()

数据集是: enter image description here

如果我使用以下代码:

df['date_time'] = pd.to_datetime(df['date_time'], errors='coerce')
df['date_time'] = df['date_time'].dt.total_seconds()
print(df.head())

然后我收到以下错误:

AttributeError: 'DatetimeProperties' object has no attribute 'total_seconds'

dt.timestamp的情况一样

所以我的疑问是:

  1. 训练模型的时间是否需要转换为秒?如果是,那么如何?如果不是,那么为什么?

  2. 这一列与另外两个名为 weather_mweather_d 的列相关,weather_m 有 38 种不同类型的条目,或者我们说 38 种不同的类别,其中只有一次为真,weather_m 有 11,但情况与weather_m 相同。所以我有点困惑是否要分割这个分类数据并合并原始数据集中的 49 个新列并删除weather_m和weather_d来训练模型或使用LabelEncoder而不是pd.get_dummies?

最佳答案

  1. 将日期时间或时间戳转换为时间增量(持续时间)没有意义。仅当您想要给定时间戳和其他引用日期之间的持续时间时,它才有意义。然后你可以通过使用 - 来获取 timedelta获取两个日期之间的差异。由于您的日期时间列是一个字符串,您还需要首先将其转换为日期时间:df['date_time'] = pd.to_datetime(df['date_time'], format='%m/%d/%Y %H:%M') 。然后你可以尝试类似:ref_date = datetime.datetime(1970, 1, 1, 0, 0); df['secs_since_epoch'] = (df['date_time'] - ref_date).dt.total_seconds()

  2. 如果不同的类别彼此完全不同(并且它们没有隐式排序),那么您应该使用一种热编码,替换原始列。由于类别数量很少,所以应该没问题。(尽管这也取决于您要在这些数据上运行什么。某些库可能可以使用原始分类列,并为您隐式进行转换)

关于python - 尝试转换格式为 10/2/2012 9:00:00 AM 时出现错误 : invalid unit abbreviation:/,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56845175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com