将 datetime64[ns] 列转换为 pandas 中的 DatetimeIndex
Convert datetime64[ns] column to DatetimeIndex in pandas
我正在使用的其中一个包有一个先决条件,即数据框的索引需要是 pandas DatetimeIndex。因此,我一直在尝试将数据类型为 datetime64[ns] 的列转换为 DatetimeIndex,但没有成功。这是我的尝试:
import pandas as pd
my_data = [[1,'2019-05-01 04:00:00'], [2, '2019-05-01 04:01:00'], [3, '2019-05-01 04:02:00']]
test = pd.DataFrame(my_data, columns=['count', 'datetime'])
print(test.dtypes.value_counts())
# Attempt using pd.DateTimeIndex
test['datetime'] = pd.DatetimeIndex(test['datetime'])
print(test.dtypes.value_counts())
if isinstance(test['datetime'], pd.DatetimeIndex):
print('Success')
# Attempt using pd.to_datetime without format string
test['datetime'] = pd.to_datetime(test['datetime'])
print(test.dtypes.value_counts())
if isinstance(test['datetime'], pd.DatetimeIndex):
print('Success')
# Attempt using pd.to_datetime with format string
test['datetime'] = pd.to_datetime(test['datetime'], format='%Y-%m-%d %h:%m:%s')
print(test.dtypes.value_counts())
if isinstance(test['datetime'], pd.DatetimeIndex):
print('Success')
我使用的是最新版本的 pandas - 0.25.3 并且正在使用 python 3.7。非常感谢任何建设性的建议。
您可以将索引转换为 datetime
。在您的专栏上使用 set_index
,然后进行类型转换。
import pandas as pd
my_data = [[1,'2019-05-01 04:00:00'], [2, '2019-05-01 04:01:00'], [3, '2019-05-01 04:02:00']]
test = pd.DataFrame(my_data, columns=['count', 'datetime'])
test.set_index('datetime').index.astype('datetime64[ns]')
DatetimeIndex(['2019-05-01 04:00:00', '2019-05-01 04:01:00',
'2019-05-01 04:02:00'],
dtype='datetime64[ns]', name='datetime', freq=None)
我正在使用的其中一个包有一个先决条件,即数据框的索引需要是 pandas DatetimeIndex。因此,我一直在尝试将数据类型为 datetime64[ns] 的列转换为 DatetimeIndex,但没有成功。这是我的尝试:
import pandas as pd
my_data = [[1,'2019-05-01 04:00:00'], [2, '2019-05-01 04:01:00'], [3, '2019-05-01 04:02:00']]
test = pd.DataFrame(my_data, columns=['count', 'datetime'])
print(test.dtypes.value_counts())
# Attempt using pd.DateTimeIndex
test['datetime'] = pd.DatetimeIndex(test['datetime'])
print(test.dtypes.value_counts())
if isinstance(test['datetime'], pd.DatetimeIndex):
print('Success')
# Attempt using pd.to_datetime without format string
test['datetime'] = pd.to_datetime(test['datetime'])
print(test.dtypes.value_counts())
if isinstance(test['datetime'], pd.DatetimeIndex):
print('Success')
# Attempt using pd.to_datetime with format string
test['datetime'] = pd.to_datetime(test['datetime'], format='%Y-%m-%d %h:%m:%s')
print(test.dtypes.value_counts())
if isinstance(test['datetime'], pd.DatetimeIndex):
print('Success')
我使用的是最新版本的 pandas - 0.25.3 并且正在使用 python 3.7。非常感谢任何建设性的建议。
您可以将索引转换为 datetime
。在您的专栏上使用 set_index
,然后进行类型转换。
import pandas as pd
my_data = [[1,'2019-05-01 04:00:00'], [2, '2019-05-01 04:01:00'], [3, '2019-05-01 04:02:00']]
test = pd.DataFrame(my_data, columns=['count', 'datetime'])
test.set_index('datetime').index.astype('datetime64[ns]')
DatetimeIndex(['2019-05-01 04:00:00', '2019-05-01 04:01:00',
'2019-05-01 04:02:00'],
dtype='datetime64[ns]', name='datetime', freq=None)