pandas.to_csv .rstrip неправильно обрабатывает дату. [Панды] [Питон]
Я столкнулся с небольшой проблемой в моем файле.csv. Дата по умолчанию отформатирована в моем CSV-файле 1/12/2011 0:00
внутри ячеек, но когда я выделю1/12/2011 12:00:00 AM
, Что я пытаюсь сделать, это удалить 0:00 (12:00:00 AM)
из нескольких столбцов. Я пытаюсь использовать .rstrip
позвоните в надежде исправить эту проблему. Ниже приведен мой код, и он компилируется, но не удаляет 0:00
или сейчас 1/12/2011 12:00:00 AM
по умолчанию в файле.csv. Я не уверен, как это исправить. Любой совет будет приветствоваться. Благодарю.
Первая попытка:
df = pd.read_excel ('.xlsx', header=None)
df.to_csv('.csv', header=None, index=False)
dateparse = lambda x: parse(x).strftime('%m/%d/%Y %H:%M').rstrip(" 0:00")
df = pd.read_csv('.xlsx', index_col=[5,8,12], date_parser=dateparse)
Вторая попытка:
df = pd.read_excel ('.xlsx', header=None)
df.to_csv('.csv', header=None, index=False)
dateparse = lambda x: parse(x).strftime('%m/%d/%Y %H:%M').rstrip(" 12:00:00 AM")
df = pd.read_csv('.xlsx', index_col=[5,8,12], date_parser=dateparse)
Примечание: Как вы можете видеть, я делаю преобразование из.xlsx в.csv и решил, что исправить дату будет легче, если бы в формате.csv. Кроме того, в файле.xlsx столбцы даты не отформатированы для времени, поэтому я не уверен, что происходит.
1 ответ
Вы можете исключить его из функции форматирования в первую очередь и с помощью parse
от dateutil.pareser
:
from dateutil.parser import parse
dateparse = lambda x: parse(x).strftime('%m/%d/%Y')
или, если вы хотите продолжать использовать свой подход, то формат часа в 2 цифры, а не 1, поэтому лишить 00:00
не 0:00
следующее:
dateparse = lambda x: parse(x).strftime('%m/%d/%Y %H:%M').rstrip(" 00:00")