首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Pandas在Python中将一些行转换为列

Pandas在Python中将一些行转换为列
EN

Stack Overflow用户
提问于 2018-02-24 08:23:42
回答 2查看 25.1K关注 0票数 7

因此,我的数据集包含一些按业务日期划分的信息,如下所示:

代码语言:javascript
运行
复制
Business    Date    Value
a         1/1/2017   127
a         2/1/2017   89
b         2/1/2017   122
a         1/1/2018   555
a         2/1/2018   455

我需要如下格式的数据:我如何转换它。我不希望在我的输出数据集中有多个级别

代码语言:javascript
运行
复制
Business    1/1/2017  2/1/2017 1/1/2018  2/1/2018
 a           127         89     555        455
 b           N/A        122      N/A       N/A

我尝试了以下语法:

代码语言:javascript
运行
复制
df = df.set_index(['Business','Date'])['Value'].unstack()
df=df.pivot(index='Business', columns='Date', values='Value')

我得到的输出如下:

代码语言:javascript
运行
复制
Date    1/1/2017    2/1/2017    1/1/2018    2/1/2018
Business
 a        454         5555        555         444 
 b        -            444         -           -

当我打印列时,它没有将LOB显示为列。我的最终数据帧还应该包括Business、Date字段作为列,以便我可以将此数据帧与另一个业务数据帧连接起来

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-24 09:00:49

你离你想要的很近了。您只需删除自定义索引并将其替换为默认索引即可。

代码语言:javascript
运行
复制
pivoted = df.pivot(index='Business', columns='Date', values='Value')\
            .reset_index()
pivoted.columns.name=None
print(pivoted)
#  Business  1/1/2017  1/1/2018  2/1/201  2/1/2017
#0        a     127.0     555.0    455.0      99.0
#1        b       NaN       NaN      NaN     122.0
票数 13
EN

Stack Overflow用户

发布于 2018-02-24 08:27:10

使用pivot

代码语言:javascript
运行
复制
df.pivot(index='Business', columns='Date', values='Value')
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48958035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档