执行 astype('datetime64[ns]') 时出错
An error occurred while doing astype('datetime64[ns]')
主题有两行。第一栏是时间。
11:46:36 ......
12:0:4.......
我想做的是
Subject['Time'] = Subject['Time'].astype('datetime64[ns]')
Subject['Time']=Subject['Time'].dt.time
第一行效果很好,给了我
2020-05-18 11:46:36
但是当我想对第二行执行此操作时,出现以下错误:
OutOfBoundsDatetime: Out of bounds nanosecond timestamp: 1-01-01 12:00:04
我知道 pandas 表示纳秒分辨率的时间戳,因此时间跨度可以使用限制为大约 584 年的 64 位整数表示。
当我做 Subject['Time'].dtype
时,它只会给我 dtype('O')
对于没有 "date" 部分的数据,datetime
不是合适的数据类型。您可能想改用 timedelta
:
pd.to_timedelta(Subject["Time"])
#0 11:46:36
#1 12:00:04
#Name: Time, dtype: timedelta64[ns]
您可以使用日期和时间增量的组合来添加自定义日期,例如
import pandas as pd
df = pd.DataFrame({'Time': ['11:46:36', '12:0:4']})
# to datetime object; add a custom date, e.g. 2020-05-18:
df['Time'] = pd.to_datetime('2020-05-18') + pd.to_timedelta(df['Time'])
# df['Time']
# 0 2020-05-18 11:46:36
# 1 2020-05-18 12:00:04
# Name: Time, dtype: datetime64[ns]
主题有两行。第一栏是时间。
11:46:36 ......
12:0:4.......
我想做的是
Subject['Time'] = Subject['Time'].astype('datetime64[ns]')
Subject['Time']=Subject['Time'].dt.time
第一行效果很好,给了我
2020-05-18 11:46:36
但是当我想对第二行执行此操作时,出现以下错误:
OutOfBoundsDatetime: Out of bounds nanosecond timestamp: 1-01-01 12:00:04
我知道 pandas 表示纳秒分辨率的时间戳,因此时间跨度可以使用限制为大约 584 年的 64 位整数表示。
当我做 Subject['Time'].dtype
时,它只会给我 dtype('O')
datetime
不是合适的数据类型。您可能想改用 timedelta
:
pd.to_timedelta(Subject["Time"])
#0 11:46:36
#1 12:00:04
#Name: Time, dtype: timedelta64[ns]
您可以使用日期和时间增量的组合来添加自定义日期,例如
import pandas as pd
df = pd.DataFrame({'Time': ['11:46:36', '12:0:4']})
# to datetime object; add a custom date, e.g. 2020-05-18:
df['Time'] = pd.to_datetime('2020-05-18') + pd.to_timedelta(df['Time'])
# df['Time']
# 0 2020-05-18 11:46:36
# 1 2020-05-18 12:00:04
# Name: Time, dtype: datetime64[ns]