Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 错误:尝试转换格式为2012年2月10日上午9:00:00的日期时,单位缩写无效:/_Python_Pandas_Machine Learning_Python Datetime - Fatal编程技术网

Python 错误:尝试转换格式为2012年2月10日上午9:00:00的日期时,单位缩写无效:/

Python 错误:尝试转换格式为2012年2月10日上午9:00:00的日期时,单位缩写无效:/,python,pandas,machine-learning,python-datetime,Python,Pandas,Machine Learning,Python Datetime,我正在使用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_s

我正在使用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())
数据集是:

如果我使用以下代码:

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\u mweather\u d的栏目相关,weather\u m有38种不同的条目类型,或者说38种不同的条目类型,一次只有一种是正确的,weather\u m有11种,但情况与weather\m相同。因此,我在这里有点困惑,是应该拆分这些分类数据,合并原始数据集中的49个新列,删除weather_m和weather_d来训练模型,还是使用LabelEncoder而不是pd.get_假人

  • 将日期时间或时间戳转换为时间增量(持续时间)没有意义。只有在您想要给定时间戳和其他参考日期之间的持续时间时,才有意义。然后,只需使用
    -
    获取两个日期之间的差值,即可获得时间增量。 由于datetime列是一个字符串,您还需要首先将其转换为datetime:
    df['date\u time']=pd.to\u datetime(df['date\u time'],格式='%m/%d/%Y%H:%m')
    。 然后您可以尝试这样的方法:
    ref_date=datetime.datetime(1970,1,1,0,0);df['secs\u since\u epoch']=(df['date\u time']-ref\u date).dt.总秒数()

  • 如果不同类别之间完全不同(例如,它们没有隐式排序),则应使用一个热编码“是”,替换原始列。因为类别的数量很小,所以应该可以。 (尽管这也取决于您将在这些数据上运行什么。一些库可能对原始的分类列没有问题,并隐式地为您进行转换)


  • @WeNYoBen请仔细阅读问题。