旋转数据后,我生成了以下熊猫数据框:
df_pivot=df.pivot_table(
values=[1911, 1912, 1916, 1917], index=['h_code','h_name'],
columns=['sort_code', 'reg','c_name','c_code']
)
现在,我想基于对每个'h_name',但对于相同的
df
,将1917的值除以1911的值的结果,在我的c_new
中添加一列(简称为c_name
)。因此,每个c_name
随后应具有针对=1917/1911
的每一行的该除法(h_name
)得出的值。我怎样才能做到这一点?
最佳答案
使用DataFrame.xs
进行顶级选择,创建相同的级别名称并用DataFrame.join
划分:
a = df_pivot.xs(1917, axis=1,level=0, drop_level=False).rename(columns={1917:'out'})
b = df_pivot.xs(1911, axis=1,level=0, drop_level=False).rename(columns={1911:'out'})
要么:
a = df_pivot[[1917]].rename(columns={1917:'out'})
b = df_pivot[[1911]].rename(columns={1911:'out'})
df_pivot = df_pivot.join(a/b)
关于python - (Python/Pandas)根据条件划分两列数据透视表数据框,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55805384/