Как отфильтровать pandas DataFrame и сохранить определенные c элементы? - PullRequest
1 голос
/ 22 января 2020

У меня есть pandas фрейм данных, представляющий собой матрицу корреляции 50x50. На следующем рисунке вы можете видеть то, что я имею в качестве примера

enter image description here

Что бы я хотел сделать, если это возможно, конечно, сделать новый фрейм данных, который имеет только элементы старого, которые выше, чем 0,5 или ниже, чем -0,5, что указывает на сильную линейную связь, но не на 1, чтобы избежать отклонений.

Я не думаю, что Я спрашиваю, это вполне возможно, потому что переменная x0, конечно, не будет иметь таких же сильных отношений, как у x1 и т.д. c, поэтому новый фрейм данных будет выглядеть не очень хорошо.

Но есть ли способ быстрого сканирования через В этом фрейме данных найдите значения, которые я упомянул, и, возможно, хотя бы вставьте их в массив?

Любое понимание будет полезным. Спасибо

1 Ответ

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

вы не можете реально смотреть на матрицу корреляции, если хотите отбросить слишком низкие пары корреляции. Одна вещь, которую вы могли бы сделать, это сложить кадр и сохранить соответствующую корреляционную пару.

имея (случайным образом сгенерированный в качестве примера):

          0         1         2         3         4
0  0.038142 -0.881054 -0.718265 -0.037968 -0.587288
1  0.587694 -0.135326 -0.529463 -0.508112 -0.160751
2 -0.528640 -0.434885 -0.679416 -0.455866  0.077580
3  0.158409  0.827085  0.018871 -0.478428  0.129545
4  0.825489 -0.000416  0.682744  0.794137  0.694887

вы можете сделать:

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.uniform(-1, 1, (5, 5)))
df = df.stack()
df = df[((df > 0.5) | (df < -0.5)) & (df != 1)]


0  1   -0.881054
   2   -0.718265
   4   -0.587288
1  0    0.587694
   2   -0.529463
   3   -0.508112
2  0   -0.528640
   2   -0.679416
3  1    0.827085
4  0    0.825489
   2    0.682744
   3    0.794137
   4    0.694887
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...