Длительность форматирования как «чч: мм: сс» и запись в файл данных pandas и сохранение его в виде файла CSV - PullRequest
2 голосов
/ 11 апреля 2019

Я импортировал данные из CSV-файла в pandas dataframe.

Затем создал столбец продолжительности, взяв разницу в 2 datetime столбцов и получив следующую сумму:

df['Drive Time'] = df['Delivered Time'] - df['Pickup Time']

Теперь я хочу сохранить его обратно в файл CSV, но я хочу, чтобы столбец «Время в пути» отображался в формате «чч: мм: сс» при открытии в Excel.И код, который я использовал, как показано ниже:

import pandas as pd
import numpy as np

df = pd.read_csv("1554897620.csv", parse_dates = ['Pickup Time', 'Delivered Time'])

df['Drive Time'] = df['Delivered Time'] - df['Pickup Time']

df.to_csv(index=False)

df.to_csv('test.csv', index=False)

В заключение, я хочу сохранить столбец Drive Time в формате "чч: мм: сс" при экспорте в CSV

1 Ответ

0 голосов
/ 11 апреля 2019

Если вы знаете, что Delivered Time никогда не превышает 24 часа, вы можете использовать этот трюк:

import pandas as pd
import numpy as np

df = pd.DataFrame(columns=['Delivered Time', 'Pickup Time'])
df['Delivered Time'] = pd.date_range('2019-01-01 13:00', '2019-01-02 13:00', periods=12)
df['Pickup Time'] = pd.date_range('2019-01-01 12:00', '2019-01-02 12:00', periods=12)
df['Drive Time'] = df['Delivered Time'] - df['Pickup Time']

# Trick: transform timedelta to datetime object to enable strftime:
df['Drive Time'] = pd.to_datetime(df['Drive Time']).dt.strftime("%H:%M:%S")

df.to_csv('test.csv')

Преобразуя timedelta в тип данных datetime, вы можете использовать его метод strftime.

...