Удалить минуты и часы из серии - PullRequest
0 голосов
/ 24 мая 2018

Доброе утро,

У меня есть следующий кадр данных (год, месяц, день, час, сек):

print(df)

     Date               Price
2018-01-02 09:42:00       2
2018-01-02 09:46:00       4
2018-01-02 10:22:00       6
...

Я хотел бы получить без минут и секунд:

print(final_df)

     Date               Price
2018-01-02                2
2018-01-02                4
2018-01-02                6
...

Я пытался:

df['Date'] = datetime.datetime.strptime(df['Date'], '%Y-%m-%d').date()

Но он сообщает "аргумент strptime () 1 должен быть str, а не Series"

1 Ответ

0 голосов
/ 24 мая 2018

Если столбец даты и времени не нужен, to_datetime с dt.date:

print (df.dtypes)
Date     object
Price     int64
dtype: object

df['Date'] = pd.to_datetime(df['Date']).dt.date

print (df.dtypes)
Date     object
Price     int64
dtype: object

print (df['Date'].head().apply(type))
0    <class 'datetime.date'>
1    <class 'datetime.date'>
2    <class 'datetime.date'>
Name: Date, dtype: object

Или, если необходимо, с указанием даты и времени без hour с, minutes и second s используют dt.floor:

df['Date'] = pd.to_datetime(df['Date']).dt.floor('d')

print (df.dtypes)
Date     datetime64[ns]
Price             int64
dtype: object

print (df['Date'].head().apply(type))
0    <class 'pandas._libs.tslibs.timestamps.Timesta...
1    <class 'pandas._libs.tslibs.timestamps.Timesta...
2    <class 'pandas._libs.tslibs.timestamps.Timesta...
Name: Date, dtype: object

Если столбец даты и времени:

print (df.dtypes)
Date     datetime64[ns]
Price             int64
dtype: object


df['Date'] = df['Date'].dt.date

df['Date'] = df['Date'].dt.floor('d')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...