./test.csv
выглядит так:
price datetime
1 100 2019-10-10
2 150 2019-11-10
...
import pandas as pd
import datetime as date
import datetime as time
from datetime import datetime
from datetime import timedelta
csv_df = pd.read_csv('./test.csv')
today = datetime.today()
csv_df['datetime'] = csv_df['expiration_date'].apply(lambda x: pd.to_datetime(x)) #convert `expiration_date` to datetime Series
def days_until_exp(expiration_date, today):
diff = (expiration_date - today)
return [diff]
csv_df['days_until_expiration'] = csv_df['datetime'].apply(lambda x: days_until_exp(csv_df['datetime'], today))
Я пытаюсь перебрать определенный столбец в моем DateFrame с меткой csv_df['datetime']
, который в каждой ячейке имеет только одно значение, дату, и выполнить калькуляцию, определенную diff
.
Тогда я хочу, чтобы единственное значение diff
было добавлено в новую серию csv_df['days_until_expiration']
.
Проблема в том, что он вычисляет значения для каждой строки (673 строки) и помещает все эти значения в список в каждой строке csv_df['days_until_expiration
. Я понимаю, что это может быть из-за скобок вокруг [diff]
, но без них я получаю ошибку.
В Excel я бы просто сделал что-то вроде = SUM (datetime - price), щелкнул и потянул вниз по строкам, чтобы он заполнил новый столбец. Тем не менее, я хочу сделать это в Pandas, поскольку это является частью более крупного приложения.