python - 将 pandas 数据框从 (id, name:a, value:b) 重新排列为 (id, a: b)
问题描述
我从 SQL 数据库导入 pandas 数据框中的数据。每行都包含一个 id、一个参数名称和相应的参数值。就像在这个精简的例子中一样:
import pandas as pd
data = [
['aaa', 'A', 0],
['bbb', 'A', 1],
['aaa', 'B', 2],
['bbb', 'B', 3],
['aaa', 'C', 4],
['bbb', 'C', 5],
]
df = pd.DataFrame(data, columns=['id', 'name', 'value'])
df = df.set_index('id')
print(df)
name value
id
aaa A 0
bbb A 1
aaa B 2
bbb B 3
aaa C 4
bbb C 5
要分析不同参数 A、B、C、[...] 之间的相关性,我需要以下格式的数据框:
A B C
id
aaa 0 2 4
bbb 1 3 5
我想这一定是一个相对常见的情况,但我不知道如何以一种优雅的方式做到这一点。
解决方案
是的,有一个简单的解决方案pivot_table
:
output = df.pivot_table(index='id', columns='name')
print(output)
value
name A B C
id
aaa 0 2 4
bbb 1 3 5
推荐阅读
- python - 使用字典查找列表列表的最大值和最小值
- django - 在heroku中部署django应用程序后TemplateDoesNotFound错误
- flutter - 当抖动中不存在图像时处理图像错误
- python - Python Web Scraping 没有得到所有的 HTML
- python - Simpleaudio wav 文件只播放一次
- mysql - 了解具有 REPEATABLE_READ 和 READ_COMMITED 隔离级别的 InnoDB X-Lock
- c# - 如何使用 ReactiveExtensions Range 和 WithAsync 每 N 页批量写入数据库
- d3.js - 如何使用 D3.js 处理 SVG 中的多个元素
- ios - 如何使 Coordinator 可重用?|斯威夫特
- javascript - 三元运算符不在反应 jsx 中呈现标记