- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 pandas 通过使用以下代码将具有日期和时间的列转换为秒:
df['date_time'] = pd.to_timedelta(df['date_time'])
df['date_time'] = df['date_time'].dt.total_seconds()
如果我使用以下代码:
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
的情况一样
所以我的疑问是:
训练模型的时间是否需要转换为秒?如果是,那么如何?如果不是,那么为什么?
这一列与另外两个名为 weather_m 和 weather_d 的列相关,weather_m 有 38 种不同类型的条目,或者我们说 38 种不同的类别,其中只有一次为真,weather_m 有 11,但情况与weather_m 相同。所以我有点困惑是否要分割这个分类数据并合并原始数据集中的 49 个新列并删除weather_m和weather_d来训练模型或使用LabelEncoder而不是pd.get_dummies?
最佳答案
将日期时间或时间戳转换为时间增量(持续时间)没有意义。仅当您想要给定时间戳和其他引用日期之间的持续时间时,它才有意义。然后你可以通过使用 -
来获取 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()
如果不同的类别彼此完全不同(并且它们没有隐式排序),那么您应该使用一种热编码,替换原始列。由于类别数量很少,所以应该没问题。(尽管这也取决于您要在这些数据上运行什么。某些库可能可以使用原始分类列,并为您隐式进行转换)
关于python - 尝试转换格式为 10/2/2012 9:00:00 AM 时出现错误 : invalid unit abbreviation:/,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56845175/
我是一名优秀的程序员,十分优秀!