Вычислить стандартное отклонение для ячеек нескольких DataFrames - PullRequest
0 голосов
/ 22 января 2020

У меня есть данные измерений в схожей структуре Pandas Кадры данных, и мне нужно вычислить стандартное отклонение для каждой отдельной ячейки, а не для целых строк или столбцов. Я мог бы сделать несколько циклов, но наборы данных довольно большие, поэтому это неэффективно.

df1 = pd.DataFrame([[1,1,1],[2,2,2]])
df2 = pd.DataFrame([[0.9,0.8,0.7],[1.9,1.8,1.7]])
df3 = pd.DataFrame([[1.1,1.2,1.2],[2.1,2.2,2.2]])

Желаемый результат будет

    0           1           2
0   0.08165     0.163299    0.244949
1   0.08165     0.163299    0.244949

Спасибо!

1 Ответ

1 голос
/ 22 января 2020

Если я правильно понимаю вашу проблему, вы можете использовать numpy .dstack для хранения значений в трехмерном массиве, а затем выполнить st.dev. по смещенной оси

np.dstack((df1.values,df2.values,df3.values)).std(axis=2)

array([[0.08164966, 0.16329932, 0.20548047],
       [0.08164966, 0.16329932, 0.20548047]])

Обратите внимание, что предпочтительный метод для передачи значений df в массив в новых версиях pandas будет to_numpy() вместо .values

np.dstack((df1.to_numpy(),df2.to_numpy(),df3.to_numpy())).std(axis=2)

, что дает тот же результат

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...