2015-11-18 3 views
2

У меня есть столбец в DataFrame с датами в формате yyyymmdd, и мне нужно постоянно его менять на yyyy-mm-dd.Как изменить формат даты в столбце dataframe.

Как я могу это сделать?

+0

Что такое тип данных колонка? Что делает 'print df [] .dtype' показывает? – DeepSpace

+0

Это: приветствия int64. – cJc

+0

См. Мой ответ .. – DeepSpace

ответ

1

С учетом информации, указанной в вашем комментарии, значения столбцов не могут быть в форме yyyy-mm-dd, так как столбец dtype равен int64.

Вы можете изменить столбец DTYPE быть str, но данные не будут полезны (например, вы не сможете сделать любые финиковые расчеты по нему, хотя <, > должен работать, но лексически). Если это все-таки то, что вы хотите, и при условии, df является dataframe и название дата столбца date:

def format_date_col(x): 
    x = str(x) 
    return '-'.join([x[:4], x[4:6], x[6:]]) 

    # or maybe like that for better readability: 
    x = str(x) 
    return '{year}-{month}-{day}'.format(year=x[:4], month=x[4:6], day=x[6:]) 

df['date'] = df['date'].apply(format_date_col) 

Лучше было бы использовать дату фактического DTYPE:

from datetime import datetime 

def format_date_col(x): 
    return datetime.strptime(str(x), '%Y%m%d') 

df['date'] = df['date'].apply(format_date_col) 

print df['date'].dtype 
>> datetime64[ns] 
+0

ваш def format_date_col (x) делает именно то, что мне нужно. большое спасибо! – cJc