python pandas melt 列转行

举报
lu_zhishen 发表于 2021/04/05 13:34:51 2021/04/05
【摘要】 原始数据: 姓名 性别 课程1 课程2 课程30 张三 男 语文 数学 物理1 李四 男 物理 英语 物理结果:代码:import pandas as pddf = pd.read_excel('test1.xlsx',sheet_name='Sheet1')print(df)pd.melt(df, id_vars=["姓名", "性别"], value_vars=["...

原始数据:

  姓名 性别 课程1 课程2 课程3
0  张三  男  语文  数学  物理
1  李四  男  物理  英语  物理

结果:

代码:

import pandas as pd
df = pd.read_excel('test1.xlsx',sheet_name='Sheet1')
print(df)

pd.melt(df, id_vars=["姓名", "性别"], value_vars=["课程1", "课程2", "课程3"],var_name='指标',value_name='课程')

解释:

当不知道value_vars 时,除了id_vars 外,所有的列都转换,这个可以用在列比较多的情况下使用。

如果id_vars 列不需要某些列,可以删除。

pd.melt(df.drop(columns=["性别"]), id_vars=["姓名"],var_name='指标',value_name='课程')

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。