pandas DataFrame对角线 [英] pandas DataFrame diagonal
本文介绍了 pandas DataFrame对角线的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
获得平方DataFrame
的对角线的有效方法是什么.我希望结果是带有两个级别的Series
和MultiIndex
,第一个是DataFrame
的索引,第二个级别是DataFrame
的列.
What is an efficient way to get the diagonal of a square DataFrame
. I would expect the result to be a Series
with a MultiIndex
with two levels, the first being the index of the DataFrame
the second level being the columns of the 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,则可以使用numpy.diag
If you don't mind using numpy you could use numpy.diag
pd.Series(np.diag(df), index=[df.index, df.columns])
A a 2
B b 2
C c 3
dtype: int64
这篇关于 pandas DataFrame对角线的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文