python - Pandas Dataframe 旋转:从列值创建新列
问题描述
如何将Original Dataframe转换为Desired Dataframe?
Original DataFrame
--------------------------------------------------
| Key | Value | Month |
--------------------------------------------------
| 1 | 123 | 1
--------------------------------------------------
| 1 | 456| 2
--------------------------------------------------
| 1 | 789| 3
--------------------------------------------------
| 2 | 111| 1
--------------------------------------------------
| 2 | 222| 2
--------------------------------------------------
| 2 | 333| 3
--------------------------------------------------
Desired DataFrame
--------------------------------------------------
| Key | Month_1 | Month_2 | Month_3 |
--------------------------------------------------
|1 |123 |456 |789|
--------------------------------------------------
|2 |111 |222 |333|
--------------------------------------------------
解决方案
使用 stack() 和 unstack() 对其进行转换。
df = df.set_index(['Month','Key']).stack().unstack(level=0).reset_index()
df = df.drop('level_1', axis=1)
df.columns = ['Key','Month_1','Month_2','Month_3']
df
Key Month_1 Month_2 Month_3
0 1 123 456 789
1 2 111 222 333
推荐阅读
- python - 在函数中传递和返回列表的pythonic方法是什么?
- python - 如何在 Python 中使用根键保存 yaml 键值?
- python - 在 Python 子进程中访问 Lambda 层
- c++ - 具有各种参数的 C++ 模板函数
- php - PHP - 如果 $optional 参数这么说,则捕获所有异常并继续
- amazon-web-services - 如何在我的本地机器的 Docker 中创建现有 EC2(AWS) 的镜像并将其容器化
- python - mypy 无法识别 Dictionary of Dictionary
- database - 如何将嵌入的文档值移动到 MongoDB 中的主文档?
- node.js - 为什么我不能在 Windows 上运行 react-native 应用程序
- makefile - 为什么 Make 更喜欢隐式规则而不是 Makefile 中列出的规则?