大熊猫-减去数据框的2个相似数据透视表

时间:2018-08-16 15:51:03

标签: python pandas dataframe pivot-table

我有一个数据透视表的36行x 36列数据框,可使用以下代码对其进行转换:

to_date

我使用以下代码转置相同的数据帧:

df_pivoted = pd.pivot_table(df,index='From',columns='To',values='count')
df_pivoted.fillna(0,inplace=True)

,并希望使用以下代码减去这两个数据框:

df_trans = df_pivoted.transpose()

它为我提供了72行x 72列的数据帧,所有单元格中的NaN值。

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

new_pivoted = df_pivoted - df_trans

但是,它会产生72行x 72列的数据帧,如下所示: enter image description here

请帮助我找出原始数据帧与转置数据帧之间的区别。

1 个答案:

答案 0 :(得分:1)

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

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

delta = df_pivoted.values - df_trans.values

如果要在df_pivot中保留df_trans的列和索引:

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

delta = df_pivoted - df_trans

现在简单的减法有效。

希望有帮助!