python - 重新调整数据框的大小
问题描述
我有一个 5252 行 x 3 列的数据框
数据看起来像这样
X Y Z
1 1 2
1 2 4
1 3 3.5
2 13 4
1 4 3
2 14 3.5
3 14 2
3 15 1
4 16 .5
4 18 2
. . .
. . .
. . .
1508 751 1
1508 669 1
1508 686 2.5
我想转换它,所以 userid 是行,itemid 是列,Z 是对应于 X 和 Y 的数据。像这样:
1 2 3 4 5 6 13 14 15 16 17 18 669 686
1 2 4 3.5 3 0 0 0 0 0 0 0 0 0 0
2 0 0 0 0 0 0 4 4.5 0 0 0 0 0 0
3 0 0 0 0 0 0 0 2 0 0 0 0 0 0
4 0 0 0 0 0 0 0 0 0 .5 0 2 0 0
.
.
.
1508 0 0 0 0 0 0 0 0 0 0 0 0 1 1
解决方案
我假设您正在使用pandas库。
你需要pd.pivot_table函数。如果调用了数据框df
,那么您需要:
pd.pivot_table(data=df, index="x", columns="y", values="z", aggfunc=sum)
推荐阅读
- python - 在继承的类中执行父方法
- functional-programming - SICP Ex 1.3 错误;句法关键字不能用作表达式:#[keyword-value-item 13]
- elixir - Elixir 中的快速不区分大小写排序
- c# - 调用 DownloadDataTaskAsync() 时,底层连接已关闭
- python - 找不到 Django 自定义命令对象 ID
- c++ - 控制台应用程序控制台窗口 - Visual C++
- android - 如何通过 ADB 在 DPs 中查找设备的尺寸
- acumatica - 保存数据后,数据必须稳定且不可通过单击网格中的删除按钮删除。有人可以建议吗?
- javascript - Vuejs 2.x单击非ul链接时如何删除活动类
- java - 我在哪里可以获得可靠的熵源(真正的随机性字节 [])?