吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1153|回复: 7
收起左侧

[求助] python pandas数据透视的问题

[复制链接]
cqwcns 发表于 2020-12-11 10:21
本帖最后由 cqwcns 于 2020-12-11 11:30 编辑

数据表结果大概如下,我希望实现统计出装维个人的用户属性情况(计数,分两列呈现普通用户数和高端用户数)、拜访次数和收益(求和),希望透视后的效果如图。
不知道代码要怎么写?求指教,谢谢。
[Python] 纯文本查看 复制代码
import numpy as np
import pandas as pd

df = pd.DataFrame({"区域": ["茂南", "茂南", "茂南", "茂南", "信宜", "茂南", "茂南", "高州", "高州"],
                   "网格": ["油城南", "西城", "西城", "油城南", "信城南", "油城南", "西城", "高城北", "高城北"],
                   "装维": ["张学友", "刘德华", "刘德华", "郭富城", "古天乐", "张学友", "周星驰", "张家辉", "张家辉"],
                   "用户属性": ["普通", "普通", "高端", "普通", "高端", "高端", "普通", "高端", "普通"],
                   "拜访次数": [1, 2, 2, 3, 3, 4, 5, 6, 7],
                   "收益": [2, 4, 5, 5, 6, 6, 8, 9, 9]})

print(df)
df2 = pd.pivot_table(df, values=['用户属性', '收益'], index=['装维个人'], aggfunc=np.sum)
print(df2)


微信图片_20201211101525.png

免费评分

参与人数 2吾爱币 +1 热心值 +2 收起 理由
goco + 1 热心回复!
yan182 + 1 + 1 我很赞同!

查看全部评分

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

rsnodame 发表于 2020-12-11 11:35
pivot_table研究不深,而且直觉认为可能实现不了。建议用分组-聚合的方式
JuncoJet 发表于 2020-12-11 12:19
做不了,除非数据重排。超出了pandas功能范畴。

典型的pandas透视表是这样的
rsnodame 发表于 2020-12-11 12:24
本帖最后由 rsnodame 于 2020-12-11 12:38 编辑

[Python] 纯文本查看 复制代码
gg = df.groupby('装维')
# 普通与高端的计数
df1 = gg['用户属性'].apply(lambda x:x.value_counts()).unstack(1)
# 分组求和
df2 = gg[['拜访次数','收益']].sum() # 需要两组中括号,详见https://github.com/pandas-dev/pandas/issues/23566

# 合并
dfr = df1.join(df2,how='outer')

免费评分

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

查看全部评分

JuncoJet 发表于 2020-12-11 13:10
rsnodame 发表于 2020-12-11 12:24
[mw_shl_code=python,true]gg = df.groupby('装维')
# 普通与高端的计数
df1 = gg['用户属性'].apply(lam ...

大佬牛逼,把计数和求和也弄上去吧
rsnodame 发表于 2020-12-11 13:18
JuncoJet 发表于 2020-12-11 13:10
大佬牛逼,把计数和求和也弄上去吧

df1是计数,df2是求和,不是都写出来了么
JuncoJet 发表于 2020-12-11 13:20
rsnodame 发表于 2020-12-11 13:18
df1是计数,df2是求和,不是都写出来了么

原来楼主是这个意思,底下是解释上面的数据类型
rsnodame 发表于 2020-12-11 13:22
JuncoJet 发表于 2020-12-11 13:20
原来楼主是这个意思,底下是解释上面的数据类型

自定义一个函数然后groupby - apply  也无不可。不过感觉分开来算然后合并更方便点
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-26 09:46

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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