吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1021|回复: 6
收起左侧

[求助] python pandas透视表的问题

[复制链接]
cqwcns 发表于 2021-5-8 15:05
直接正题。pandas DataFrame是这样的:
微信图片_20210508145924.png


我希望透视出这个的表:
22222.png

我现在的代码是这样的:
[Python] 纯文本查看 复制代码
df_box_pivot_table = pd.pivot_table(df_box, index=['更新人一级部门', '更新人二级部门'], values='更新时间分类', aggfunc='count', margins=True, margins_name='总计')


不知道要怎么改?请指教。





发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

feihudui 发表于 2021-5-9 10:14
要变通
要变通
要变通
字数不够
ans.png

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
cqwcns + 1 + 1 热心回复!

查看全部评分

cbl666 发表于 2021-5-9 10:34
 楼主| cqwcns 发表于 2021-5-10 09:13
feihudui 发表于 2021-5-9 10:14
要变通
要变通
要变通

谢谢老铁。


我研究了一下,aggfunc='count'这样也可以,不用新建计数列,但奇葩的是values列不能在index或columns中,否则报错。
df_box_pivot_table = pd.pivot_table(df_box, index=['更新人一级部门', '更新人二级部门'], values='更新人', columns='更新时间分类',
                                    aggfunc='count', margins=True, margins_name='总计')
print(df_box_pivot_table)
另外,对于你的方法,也是可以的,但我不明白你的计数列为什么要用for,我试了,直接=1就可,即这样:

df_box['计数'] = 1

df_box_pivot_table = pd.pivot_table(df_box, index=['更新人一级部门', '更新人二级部门'], values='计数', columns='更新时间分类',
                                    aggfunc='sum', margins=True, margins_name='总计', fill_value=0)
print(df_box_pivot_table)
 楼主| cqwcns 发表于 2021-5-10 09:15
feihudui 发表于 2021-5-9 10:14
要变通
要变通
要变通

谢谢指教
feihudui 发表于 2021-5-10 20:25
呵呵  其实一开始是想全置1的,那样也简单,但感觉缺乏灵活性,不知道后面还有没有其他的要求,就留了个活口,在这里可以修改规则,占位而已,请忽略
value不为索引和列名其实应该是需要统计的列名不能和已知的重名吧,否则他也不知道你要调用
ans2.png
feihudui 发表于 2021-5-10 20:28
其实正如以上这个例子,他怎么知道你要添加一个同名列cc,然后填写计数内容呢,正常就是调用修改了,所以你那种同名列既想保留现有列又想生成一个同名的新列是不行的吧
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 01:11

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表