Jaki jest skuteczny sposób na uzyskanie przekątnej kwadratu DataFrame
. Spodziewam się, że wynikiem będzie Series
z MultiIndex
z dwoma poziomami, z których pierwszym jest indeks drugiego rzędu kolumny DataFrame
.panda DataFrame przekątna
Konfiguracja
import pandas as pd
import numpy as np
np.random.seed([3, 1415])
df = pd.DataFrame(np.random.rand(3, 3) * 5,
columns = list('abc'),
index = list('ABC'),
dtype=np.int64
)
Chcę zobaczyć:
print df.stack().loc[[('A', 'a'), ('B', 'b'), ('C', 'c')]]
A a 2
B b 2
C c 3
Pokonałeś mnie "numpy.diag" to dobre rozwiązanie. Czy konieczne jest jednak przekazanie mutliindeksu? czy to nie działa? 'pd.Series (np.diag (df), index = [df.index, df.columns])' – johnchase
@johnchase faktycznie to lepsze rozwiązanie, po prostu zdecydowałem się dosłownie zrobić to, co OP poprosił o – EdChum
@johnchase proszę przesłać odpowiedź z tym. po prostu uruchomiłem i pracowałem – piRSquared