Я хочу преобразовать определенные столбцы в кадре данных в значения timedelta. В этом примере столбцы «день 1», «день 2», «день 3» необходимо преобразовать из значений с плавающей запятой в значения дельты времени (в днях).
#trail dataframe
newdf = pd.DataFrame({'days 1' : [14.3], 'val 1' : [147], 'days 2' : [16.7],'val 2' : [148], 'days 3' : [17.7],'val 3' : [149]})
Я попытался преобразовать с помощью pd.to_timedelta()
функция, но go ошибка arg must be a string, timedelta, list, tuple, 1-d array, or Series
newdf[['days 1','days 2', 'days 3']] = pd.to_timedelta(newdf[['days 1','days 2','days 3']],unit = 'D')
Однако, когда я разделял каждый столбец как так, код работал нормально.
newdf['days 1'] = pd.to_timedelta(newdf['days 1'],unit = 'D')
newdf['days 2'] = pd.to_timedelta(newdf['days 2'],unit = 'D')
newdf['days 3'] = pd.to_timedelta(newdf['days 3'],unit = 'D')
Я также пытался безуспешно использовать функции .apply()
newdf[['days 1','days 2','days 3']] = newdf.apply(pd.to_timedelta(arg = ['days 1','days 2','days 3'],unit = 'D'))
Есть идеи, как преобразовать указанные столбцы в кадре данных в одну строку?