如何高效地获取一个正方形 DataFrame
的对角线?我希望结果是一个 Series
,带有两个级别的 MultiIndex
,第一级别是 DataFrame
的索引,第二级别是 DataFrame
的列。
设置
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
)
我想看这个:
print df.stack().loc[[('A', 'a'), ('B', 'b'), ('C', 'c')]]
A a 2
B b 2
C c 3
numpy.diag
是一个好的解决方案。但是必须传递一个多级索引吗?这个方法可行吗?pd.Series(np.diag(df), index=[df.index, df.columns])
- johnchase