2015-03-27 3 views
-1

у меня есть переменный, состоящие из 300k записей с датами и дату выглядеть
2015-02-21 12:08:51
с этой датой я хочу, чтобы удалить Времяудаление времени с переменной даты и времени в python?

типа переменной даты является пандой. core.series.series

Это путь я попытался

from datetime import datetime,date 
date_str = textdata['vfreceiveddate'] 
format_string = "%Y-%m-%d" 
then = datetime.strftime(date_str,format_string) 

некоторые случайная ошибка

В Абову e code textdata - это мое имя_файла и vfreceived date - это переменная, состоящая из дат
Как написать код, чтобы удалить время из даты и времени.

+0

Возможно, ваша ошибка связана с тем, что строка формата и сама строка не совпадают, отправляйте данные. То, что вы можете сделать, это 'then = pd.to_datetime (textdata ['vfreceiveddate']). Dt.date' Я думаю, что нужно работать, но вам нужно отправлять исходные входные данные, и маловероятно, что ошибка будет случайной. – EdChum

ответ

7

Предполагая, что все ваши строки даты-времени в том же формате, а затем просто преобразовать их в DATETIME, используя to_datetime, а затем вызвать атрибут dt.date, чтобы получить только часть даты:

In [37]: 

df = pd.DataFrame({'date':['2015-02-21 12:08:51']}) 
df 
Out[37]: 
        date 
0 2015-02-21 12:08:51 
In [39]: 

df['date'] = pd.to_datetime(df['date']).dt.date 
df 
Out[39]: 
     date 
0 2015-02-21 
+0

thankyou очень понравилось! если я хочу удалить дату из даты и времени в том же случае, как я могу это сделать? – surendra

+0

Just do dt.time – EdChum

+0

hai EdChum сделал это благодаря этому – surendra

2

Вы призывающую datetime.datetime.strftime, который требует как его первый аргумент datetime.datetime, потому что это несвязанный метод; но вы передаете ему строку вместо экземпляра datetime, откуда очевидная ошибка.

Вы можете работать чисто на уровне строк, если это то, что вы хотите; с данными, которые вы приводите в качестве примера, например, date_str.split()[0] будет точно соответствовать нулевой строке 2015-02-21.

Или, вы можете использовать datetime, но тогда вам нужно разобрать строку первой, не формат это - значит, ул р время, не ул ф время:

dt = datetime.strptime(date_str, '%Y-%m-%d %H:%M:%S') 
date = dt.date() 

если это datetime.date объект, который вы хотите (но если все, что вы хотите, это строка форма даты, такой подход может быть «излишним» :-).

Смежные вопросы