栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

pandas行过滤器以及特定行和列的划分

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

pandas行过滤器以及特定行和列的划分

透视的一个想法:

df1 = df.pivot_table(index=['date','region'],columns='traffic_type',values='total_views',aggfunc='sum')print (df1)traffic_type       desktop  mobileweb  totaldate       region     01/04/2018 aug          50         60    200world        20         30     40df2 = df1['desktop'].div(df1['total']).reset_index(name='desktop_share').assign(traffic_type='total')df = df.merge(df2, how='left')print (df)  traffic_type        date region  total_views  desktop_share0      desktop  01/04/2018    aug50 NaN1    mobileweb  01/04/2018    aug60 NaN2        total  01/04/2018    aug          2000.253      desktop  01/04/2018  world20 NaN4    mobileweb  01/04/2018  world30 NaN5        total  01/04/2018  world400.50

另一个想法是

MultiIndex

df1 = df.set_index(['traffic_type','date','region'])a = df1.xs('desktop', drop_level=False).rename({'desktop':'total'})b = df1.xs('total', drop_level=False)df = df1.assign(desktop_share = a['total_views'].div(b['total_views'])).reset_index()print (df)  traffic_type        date region  total_views  desktop_share0      desktop  01/04/2018    aug50 NaN1    mobileweb  01/04/2018    aug60 NaN2        total  01/04/2018    aug          2000.253      desktop  01/04/2018  world20 NaN4    mobileweb  01/04/2018  world30 NaN5        total  01/04/2018  world400.50


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/455750.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号