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