首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >(Python/Pandas)根据条件划分两列旋转的数据帧

(Python/Pandas)根据条件划分两列旋转的数据帧
EN

Stack Overflow用户
提问于 2019-04-23 06:20:50
回答 1查看 183关注 0票数 1

我在透视我的数据后生成了以下pandas数据帧:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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)。

我该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-23 06:39:48

使用DataFrame.xs表示按顶层选择,创建相同的级别名称,并使用DataFrame.join划分

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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'})

或者:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
a = df_pivot[[1917]].rename(columns={1917:'out'})
b = df_pivot[[1911]].rename(columns={1911:'out'})

df_pivot = df_pivot.join(a/b)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55805384

复制
相关文章

相似问题

领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文