【发布时间】:2016-02-16 19:21:16
【问题描述】:
我在 pandas 中创建了一个交叉表,使用:
grouped_missing_analysis = pd.crosstab(clean_sessions.action_type, clean_sessions.action, margins=True).unstack()
print(grouped_missing_analysis[:20])
这会导致显示:
action action_type
10 Missing 0
Unknown 0
booking_request 0
booking_response 0
click 0
data 0
message_post 3215
modify 0
partner_callback 0
submit 0
view 0
All 3215
11 Missing 0
Unknown 0
booking_request 0
booking_response 0
click 0
data 0
message_post 716
modify 0
dtype: int64
我只想显示“未知”、“缺失”或“其他”的action_type,并忽略每个操作的其他action_type。我感觉答案与:
.where(clean_sessions.action_type.isin(('Missing', 'Unknown')), 'Other')
从以前的 sn-p 我有,但我无法让它工作。可能pivot_table比较简单,这个练习只是为了让我了解如何在python中使用不同的函数进行数据分析。
clean_sessions 的原始数据如下所示:
user_id action action_type action_detail \
0 d1mm9tcy42 lookup Missing Missing
1 d1mm9tcy42 search_results click view_search_results
2 d1mm9tcy42 lookup Missing Missing
3 d1mm9tcy42 search_results click view_search_results
4 d1mm9tcy42 lookup Missing Missing
5 d1mm9tcy42 search_results click view_search_results
6 d1mm9tcy42 lookup Missing Missing
7 d1mm9tcy42 personalize data wishlist_content_update
8 d1mm9tcy42 index view view_search_results
9 d1mm9tcy42 lookup Missing Missing
device_type secs_elapsed
0 Windows Desktop 319
1 Windows Desktop 67753
2 Windows Desktop 301
3 Windows Desktop 22141
4 Windows Desktop 435
5 Windows Desktop 7703
6 Windows Desktop 115
7 Windows Desktop 831
8 Windows Desktop 20842
9 Windows Desktop 683
【问题讨论】:
-
grouped_missing_analysis.loc(axis=0)[slice(None), ['Missing', 'Unknown', 'Other']]有效吗?你能发布原始数据和代码来重现你的df -
是的!快速跟进,我现在如何汇总每个操作的
Missing、Unknown和Other作为每个操作的总值计数,并以Allaction_types 的百分比表示缺失、未知或其他的? -
抱歉,每个问题有 1 个问题,请发布一个新问题,通过 cmets 回答新要求会适得其反。
-
是的。谢谢你。我会接受答案。
标签: python pandas group-by crosstab