У меня есть DataFrame, как показано ниже:
rng = pd.date_range('2020-12-11', periods=5, freq='T')
df = pd.DataFrame({ 'Date': rng, 'status': ['active', 'active', 'finished', 'finished', 'active'] })
И мне нужно создать 2 новых столбца в этом DataFrame:
Ниже образец результата:
Я добавил образцы результатов
rng = pd.date_range('2020-12-01', periods=5, freq='D')
df = pd.DataFrame({ 'Date': rng,
'status': ['active', 'active', 'finished', 'finished', 'active'] })
days = df['Date'].rsub(pd.Timestamp('now').floor('d')).dt.days
df['New1'] = days.where(df['status'].eq('active'))
df['New2'] = days.where(df['status'].eq('finished'))
print (df)
Date status New1 New2
0 2020-12-01 active 13.0 NaN
1 2020-12-02 active 12.0 NaN
2 2020-12-03 finished NaN 11.0
3 2020-12-04 finished NaN 10.0
4 2020-12-05 active 9.0 NaN
У меня есть ошибка, как показано ниже, после вашего кода: TypeError: неподдерживаемый тип (ы) операнда для -: «Timestamp» и «str»
@rumor154 — Являются ли значения в столбце Date
датой и временем? Кажется, нет, поэтому используйте df['Date'] = pd.to_datetime(df['Date'])
перед days = df['Date'].rsub(pd.Timestamp('now').floor('d')).dt.days
Как выглядят новые столбцы по демонстрационным данным?