У меня есть довольно запутанная df.apply()
для вычисления рабочих часов между двумя датами.
У меня это работает без проблем для одной строки / примера, однако сейчас я пытаюсь применить его ко всей df.
Пример кода:
df.apply(lambda row: calc_bus_hrs(row['Created Date'], row['T1 - Date']) if not (pd.isnull(row['T1 - Date'])) else np.nan, axis=1)
Файл df.apply не подходит для каждой строки и возвращает nan
выходных данных , что в порядке .
Выход:
40171 NaN
40172 NaN
40173 0.399722
40174 NaN
40175 NaN
40176 NaN
40177 NaN
40178 NaN
40179 0.017222
40180 NaN
Теперь я хочу сохранить в моей df, используя другое значение столбцов, например:
df[df['T1 - From'].values[0] + " Time"]
Теперь проблема в том, что приведенный выше код завершается ошибкой, когда df[df['T1 - From'].values[0]
содержит nan
.
- Как сохранить выходные данные только в те строки, которые не являются nan?
Полный код:
df[df['T1 - From'].values[0] + " Time"] = df.apply(lambda row: calc_bus_hrs(row['Created Date'], row['T1 - Date']) if not (pd.isnull(row['T1 - Date'])) else np.nan, axis=1)
Ошибка:
TypeError: unsupported operand type(s) for +: 'float' and 'str'