Укладка np.tril и np.triu вместе - PullRequest
1 голос
/ 07 июля 2019

У меня есть две корреляционные матрицы, одна из которых имеет нижний треугольник в виде значений NaN, а другая - верхний треугольник в виде значений 'NaN'.

Я бы хотел сложить их вместе,поэтому я получу матрицу NxN с коэффициентами корреляции.

Я пытался использовать pd.concat(), но не могу заставить его работать.Я ищу лучший способ сделать это, так как я уверен, что есть один

a = [1, NaN, NaN,
     0.4, 1, NaN,
     0.7, 0.3, 1]

b = [1, 0.2, 0.9,
     NaN, 1, 0.6,
     NaN, NaN, 1]

Я хотел бы иметь что-то похожее на это:

c = [1, 0.2, 0.9,
     0.4, 1, 0.6,
     0.7, 0.3, 1]

Спасибо!

1 Ответ

2 голосов
/ 07 июля 2019

Используйте DataFrame.fillna для замены отсутствующих значений другими DataFrame:

df = df1.fillna(df2)

Или используйте DataFrame.combine_first:

df = df1.combine_first(df2)

Все вместе:

a = [1, np.nan, np.nan,
     0.4, 1, np.nan,
     0.7, 0.3, 1]

b = [1, 0.2, 0.9,
     np.nan, 1, 0.6,
     np.nan, np.nan, 1]

df1 = pd.DataFrame(np.asarray(a).reshape(3,3))
df2 = pd.DataFrame(np.asarray(b).reshape(3,3))

df = df1.fillna(df2)
print (df)
     0    1    2
0  1.0  0.2  0.9
1  0.4  1.0  0.6
2  0.7  0.3  1.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...