我在透视我的数据后生成了以下pandas数据帧:
df_pivot=df.pivot_table(
values=[1911, 1912, 1916, 1917], index=['h_code','h_name'],
columns=['sort_code', 'reg','c_name','c_code']
)
现在,我想根据1917年的值除以1911年的值除以1911年的值的结果,为每个‘h_ df
’添加一列到我的名称(让我们称其为c_new
),但对于相同的名称。因此,对于h_name
的每一行,每个c_name
都应该有一个从这个除法得到的值(=1917/1911
)。
我该怎么做呢?
发布于 2019-04-23 06:39:48
使用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)
https://stackoverflow.com/questions/55805384
复制相似问题