pandas - 熊猫中的MultiIndex枢轴,从长到宽的问题
问题描述
我确信这是一个简单的从长到宽的问题,但是当我有多个列在使用时,我无法正确处理如何处理这个问题。
我的数据如下所示:
>>> df.head()
s_name geo zip date value
0 A002X zip 00601 2010 1
1 A002Y zip 00601 2010 2
2 A003X zip 00601 2010 3
3 A003Y zip 00601 2010 4
...
. A002X zip 00602 2010 8
. A002Y zip 00602 2010 9
. A003X zip 00602 2010 10
. A003Y zip 00602 2010 11
我希望它看起来像这样,即 s_name 列的内容成为新列,它们的值是 'value' 列,按 (geo,zip,date) 分组:
>>> df2.head()
A002X A002Y A003X A003Y geo zip date
0 1 2 3 4 zip 00601 2010
1 8 9 10 11 zip 00602 2010
2 19 20 21 22 zip 00603 2010
3 31 32 33 45 zip 00604 2010
我试过这样的一对
>>> df.pivot(columns='s_name', values=["geo","zip","date","value"])
>>> df.pivot(columns='s_name', values=["geo","zip","date","value"]).unstack().reset_index()
我觉得我真的很接近,但似乎没有什么匹配。例如,这会删除额外的非 s_name 值:
>>> df.pivot(columns='name', values=["value"]).head()
如何获得我正在寻找的格式?
解决方案
我将要做的pivot_table
s=df.pivot_table(index=['geo','zip','date'],columns='s_name',values='value',aggfunc='sum')
s
s_name A002X A002Y A003X A003Y
geo zip date
zip 601 2010 1 2 3 4
602 2010 8 9 10 11
#s=s.reset_index()
推荐阅读
- haskell - 新数据的模式匹配
- java - 将 POJO 序列化为 JSON - 输入参数化
- jquery - jQuery 动态搜索字段 stopPropagation 无法正常工作
- c++ - CMake 测试在 MacOS 上找不到库
- python - Python:调用具有给定参数列表的方法
- youtube-api - API 密钥不再工作,但不知道它与哪个帐户对齐
- firefox - 带有 FIrefox 62 的网页中未出现 Google 表单
- google-cloud-firestore - Firestore 中不同集合中相互依赖的文档的正确模式是什么?
- sql - SQL Server 'LIKE' 或 varchar 问题
- css - 图像之间的 CSS 堆叠徽标