Изменить разделенный запятыми формат даты 20,190,927 в кадре данных? - PullRequest
1 голос
/ 28 сентября 2019

У меня есть фрейм данных со столбцами даты, равным 20 190 927, что означает: 2019/09/27.Мне нужно изменить формат на ГГГГ / ММ / ДД или что-то подобное.

Я подумал сделать это вручную, например:

x = df_all['CREATION_DATE'].str[:2] + df_all['CREATION_DATE'].str[3:5] + "-" + \
    df_all['CREATION_DATE'].str[5] + df_all['CREATION_DATE'].str[7] + "-" + df_all['CREATION_DATE'].str[8:]

print(x)

Какой более творческий способ сделать это?Можно ли это сделать с помощью модуля datetime?

Ответы [ 2 ]

1 голос
/ 28 сентября 2019

Я верю, что это то, что вы хотите.Сначала замените , ничем, чтобы получить формат ггггммдд, а затем измените его на datetime на pd.to_datetime, передав правильный формат.Один вкладыш:

df['dates'] = pd.to_datetime(df['dates'].str.replace(',',''),format='%Y%m%d')

Полное объяснение:

import pandas as pd
a = {'dates':['20,190,927','20,191,114'],'values':[1,2]}
df = pd.DataFrame(a)
print(df)

Вывод, вот как выглядит исходный кадр данных:

        dates  values
0  20,190,927       1
1  20,191,114       2

df['dates'] = df['dates'].str.replace(',','')
df['dates'] = pd.to_datetime(df['dates'],format='%Y%m%d')
print(df)
print(df.info())

Вывод недавно отформатированного кадра данных:

       dates  values
0 2019-09-27       1
1 2019-11-14       2

Печать .info() для обеспечения правильного формата:

dates     2 non-null datetime64[ns]
values    2 non-null int64
0 голосов
/ 28 сентября 2019

Надеюсь, это поможет,

date=['20,190,927','20,190,928','20,190,929']
df3=pd.DataFrame(date,columns=['Date'])
df3['Date']=df3['Date'].replace('\,','',regex=True)
df3['Date']=pd.to_datetime(df3['Date'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...