Python 熊猫-减去数据帧的2个类似数据透视表

Python 熊猫-减去数据帧的2个类似数据透视表,python,pandas,dataframe,pivot-table,Python,Pandas,Dataframe,Pivot Table,我有一个pivot表的36行x 36列数据框,我使用下面的代码进行转换: df_pivoted = pd.pivot_table(df,index='From',columns='To',values='count') df_pivoted.fillna(0,inplace=True) 我使用以下代码转置相同的数据帧: df_trans = df_pivoted.transpose() new_pivoted = df_pivoted - df_trans 要用以下代码减去这两个数据帧:

我有一个pivot表的36行x 36列数据框,我使用下面的代码进行转换:

df_pivoted = pd.pivot_table(df,index='From',columns='To',values='count')
df_pivoted.fillna(0,inplace=True)
我使用以下代码转置相同的数据帧:

df_trans = df_pivoted.transpose()
new_pivoted = df_pivoted - df_trans
要用以下代码减去这两个数据帧:

df_trans = df_pivoted.transpose()
new_pivoted = df_pivoted - df_trans
它给我72行x 72列的数据帧,所有单元格中都有NaN值

然后我尝试使用其他代码:

delta = df_pivoted.subtract(df_trans, fill_value=0)
但是,它会产生72行x 72列的数据帧,如下所示:


请帮助我找到原始数据帧与转置数据帧之间的差异。

转换数据帧(透视表)后,您将拥有新的数据帧,其中列变为索引,反之亦然。现在,当您从另一个数据中减去df时,请使用列和索引,并在其余部分填充NaN

如果无论索引和列如何,都需要减去值,请使用:

delta = df_pivoted.values - df_trans.values
如果要使df_中的df_trans的列和索引保持旋转:

df_trans = pd.DataFrame(data=df_pivoted.transpose().values, 
                        index=df_pivoted.index,
                        columns = df_pivoted.columns)

delta = df_pivoted - df_trans
现在简单的减法就行了


希望有帮助

df_数据透视的列和索引是否相同?您需要在问题中添加生成类似df的代码。如果columns==index,则减去后将得到36*36 df。如果创建
df_trans
df_trans=pd.DataFrame(data=df_pivoted.transpose()。值,index=df_pivoted.index,columns=df_pivoted.columns),则会发生什么情况