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                  )   I want to see this:
print df.stack().loc[[('A', 'a'), ('B', 'b'), ('C', 'c')]]  A  a    2 B  b    2 C  c    3 
                Compute Matrix Multiplication of DataFrames in Pandas To compute the matrix multiplication between the DataFrame and other DataFrame, call dot() method on this DataFrame and pass the other object as argument to this method.
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 
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With