我有一个数据透视表的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
请帮助我找出原始数据帧与转置数据帧之间的区别。
答案 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
现在简单的减法有效。
希望有帮助!