рассчитать стандартное отклонение строк даты и времени для столбца specefi c и сохранить в новом столбце в pandas - PullRequest
0 голосов
/ 21 января 2020

У меня есть кадр данных из 277 столбцов и 4000+ строк в формате

df = pd.DataFrame({
        'TCTN':list('101','102','103','104')
         '0':[855days,626days,866days],
         '1':[946days,485days,182days],
         '2':[1242days,1985days,0days],
         '3':[345days,1864days,361days],
})

Мне нужно найти стандартное отклонение отдельных строк и сохранить их в новом столбце ['STD']. Это что я пробовал:

df3['STDDEV']=df3.apply(np.std(axis=1))

но я получил ошибку:

TypeError: _std_dispatcher() missing 1 required positional argument: 'a'

это потому, что мне нужно преобразовать тип данных перед применением функции? Я новичок в работе с данными в python, спасибо большое! :)

1 Ответ

2 голосов
/ 21 января 2020

Если лучше работать с timedeltas, используйте DataFrame.std, при необходимости опуская первый столбец, также добавьте ddof=0, если необходимо такое же поведение, как np.std, потому что по умолчанию pandas ddof=1:

df3['STDDEV'] = df3.iloc[:, 1:].std(axis=1, ddof=0)
print (df3)
  TCTN        0        1         2         3                   STDDEV
0  101 855 days 946 days 1242 days  345 days 323 days 05:21:59.628482
1  102 626 days 485 days 1985 days 1864 days 687 days 15:28:38.826254
2  103 866 days 182 days    0 days  361 days 322 days 21:48:52.946864

Если первый столбец является индексом:

df3['STDDEV'] = df3.std(axis=1, ddof=0)
print (df3)
            1         2         3                   STDDEV
TCTN                                                      
101  946 days 1242 days  345 days 373 days 04:31:14.711017
102  485 days 1985 days 1864 days 680 days 09:10:40.121445
103  182 days    0 days  361 days 147 days 09:06:14.040307
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...