首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >你能帮我在python中转换这个pandas数据框吗?

你能帮我在python中转换这个pandas数据框吗?
EN

Stack Overflow用户
提问于 2021-01-01 10:11:23
回答 1查看 43关注 0票数 4

我正在尝试弄清楚如何在Python中透视这个表。

代码语言:javascript
复制
example = {"ABC":{'2020-09':1.33,'2020-10':0.75,'2020-11':1.55},
"DEF":{'2020-09':1.22,'2020-10':1.75,'2020-11':2.73}}

df = pd.DataFrame(example)
df

Output of above code

我希望它像这样旋转:

代码语言:javascript
复制
example = {"Date":['2020-09','2020-10','2020-11','2020-09','2020-10','2020-11'],
"Col1":['ABC','ABC','ABC','DEF','DEF','DEF'],
"Col2":[1.33,0.75,1.55,1.22,1.75,2.73]}

df = pd.DataFrame(example)
df

Output of above code

我创建这两个字典只是为了说明这里的问题。我有一个更大的代码来生成第一个数据帧。

你能帮我把第一个数据帧转换成第二个吗?

谢谢

问候

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-01 10:24:40

最简单的版本可能是

代码语言:javascript
复制
df.unstack()

这为您提供了多索引的结果:

代码语言:javascript
复制
ABC  2020-09    1.33
     2020-10    0.75
     2020-11    1.55
DEF  2020-09    1.22
     2020-10    1.75
     2020-11    2.73
dtype: float64

如果你不想要多索引,你可以这样做

代码语言:javascript
复制
df.unstack().reset_index()


    level_0     level_1     0
0   ABC     2020-09     1.33
1   ABC     2020-10     0.75
2   ABC     2020-11     1.55
3   DEF     2020-09     1.22
4   DEF     2020-10     1.75
5   DEF     2020-11     2.73

或者,

代码语言:javascript
复制
df.reset_index().melt(id_vars='index', var_name='key', value_name='value')

    index   key     value
0   2020-09     ABC     1.33
1   2020-10     ABC     0.75
2   2020-11     ABC     1.55
3   2020-09     DEF     1.22
4   2020-10     DEF     1.75
5   2020-11     DEF     2.73
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65526864

复制
相关文章

相似问题

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