繁体   English   中英

pandas - 减去 2 个类似的数据框数据透视表

[英]pandas - Subtract 2 similar pivot table of data frame

我有一个 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

它给了我 72 行 x 72 列的数据框,所有单元格中都有 NaN 值。

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

delta = df_pivoted.subtract(df_trans, fill_value=0)

但是,它产生 72 行 x 72 列的数据框,如下所示: 在此处输入图片说明

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

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

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

delta = df_pivoted.values - df_trans.values

如果您想在 df_pivoted 中保留 df_trans 的列和索引:

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

delta = df_pivoted - df_trans

现在简单的减法工作。

希望有帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM