import pandas as pd
data = [
"17/10/2019 12:35",
"17/10/2019 12:40",
"17/10/2019 12:45",
"17/10/2019 12:50",
"17/10/2019 12:55",
"17/10/2019 13:00",
]
columns = ["Date"]
df = pd.DataFrame(data, columns = columns)
# Because the values came in frm a CSV, they are not datetime objects.
# Convert the column to datetime ojects
df['Date'] = pd.to_datetime(df['Date'])
subtractdate = df["Date"].iloc[0]
df["Diff"] = df["Date"].apply(lambda x: x - subtractdate)
print(df)
РЕДАКТИРОВАТЬ:
Чтобы получить минуты, выполните следующие действия ...
df["Diff"] = df["Date"].apply(lambda x: (x - subtractdate).seconds/60)
(x - вычитание) возвращает a timedelta
объект. У него нет опции «минут», но есть секунды. Он вернется в формате float
(т. Е. 5.0
, 10.0
)
Чтобы получить его в виде строки, выполните следующее:
df["Diff"] = df["Date"].apply(lambda x: str( (x - subtractdate).seconds/60 ) )
И получите его какint:
df["Diff"] = df["Date"].apply(lambda x: int( (x - subtractdate).seconds/60 ) )
int
будет форматом «5, 10, 15».