Используя index = False в df.to_csv, измените формат даты и времени с «% m /% d /% Y» на «% m-% d-% Y» - PullRequest
0 голосов
/ 10 марта 2020

Я генерирую файл CSV в формате «% m /% d /% Y» для дневного времени и сохраняю его в CSV с помощью команды

df.to_csv; однако этот метод добавит индекс строки в качестве первого столбца. Чтобы избежать этого, я добавляю index = False в качестве аргумента команды df.to_csv. Однако по причине, которую я не могу понять, это изменит временной столбец на «% m-% d-% Y». Может кто-нибудь сказать мне, почему это происходит и как предотвратить это?

 df.to_csv(Path)              # retains the datetime foremat

 df.to_csv(Path, index=False) # Change the datetime format

.

1 Ответ

1 голос
/ 10 марта 2020

Используйте параметр date_format метода to_csv:

df.to_csv("/home/path/file.csv", date_format="%m/%d/%Y", index=False)

Если этого недостаточно, это означает, что ваш столбец dtype не понимается как дата. В этом случае вы должны заставить его.

import pandas as pd

df = pd.DataFrame(
    [{"date": "01/12/2020", "value": 1}, {"date": "31/12/2020", "value": 2}]
)
# date type is not understood, indeed
# the following line will print "object"
# print(df.date.dtype)

# format is the "input" date format
df["date"] = pd.to_datetime(df["date"], format="%d/%m/%Y")

# date_format is the csv output date format
df.to_csv("filename.csv", date_format="%d/%m/%Y", index=False)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...