Вас немного сбивает с толку то, что вы видите. Pandas делает отметку на отметках времени, если мы 00:00:00
в данный день.
Так, когда вы делаете
df['time'] = pd.to_datetime(df['time'])
, тогда выполняется преобразование из строки во время и это в формате '%Y-%m-%d %H:%M:%S'
, но данные после дней будут отображаться, только если они не 00:00:00
. Битовый пример:
import pandas as pd
df = pd.DataFrame(['2014/04/28 00:00:00', '2014-04-29', '2014-04-30'], columns=['time'])
print(df)
print(type(df['time'][0]))
OUT:
time
0 2014/04/28 00:00:00
1 2014-04-29
2 2014-04-30
<class 'str'>
Преобразование с pd.to_datetime()
:
df['time'] = pd.to_datetime(df['time'])
print(df)
print(type(df['time'][0]))
OUT:
time
0 2014-04-28
1 2014-04-29
2 2014-04-30
<class 'pandas._libs.tslibs.timestamps.Timestamp'>
print(df['time'][0])
Взять один элемент серии:
OUT:
2014-04-28 00:00:00
Теперь то же самое, если один наших временных меток не на 00:00:00
:
df = pd.DataFrame(['2014/04/28 10:00:00', '2014-04-29', '2014-04-30'], columns=['time'])
print(df)
print(type(df['time'][0]))
OUT:
time
0 2014/04/28 10:00:00
1 2014-04-29
2 2014-04-30
<class 'str'>
Преобразование с pd.to_datetime()
:
df['time'] = pd.to_datetime(df['time'])
print(df)
print(type(df['time'][0]))
OUT:
time
0 2014-04-28 10:00:00
1 2014-04-29 00:00:00
2 2014-04-30 00:00:00
<class 'pandas._libs.tslibs.timestamps.Timestamp'>