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")
Другие вопросы по тегам