我旋转数据后生成了以下熊猫数据框:
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”的值将1917年的值除以1911年的值所得的结果,在我的df
中添加一列(简称为c_new
),相同的c_name
。因此,每个c_name
的值都应该由=1917/1911
的每一行的除法(h_name
)得出。
我该怎么做?
答案 0 :(得分:1)
使用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)