前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python+pandas读取Excel文件并统计演员参演电影数量

Python+pandas读取Excel文件并统计演员参演电影数量

作者头像
Python小屋屋主
发布2018-04-17 10:07:38
1.5K0
发布2018-04-17 10:07:38
举报
文章被收录于专栏:Python小屋Python小屋

Excel样本数据请参考Python读取Excel文件统计演员参演电影

>>> import pandas as pd >>> df = pd.read_excel('电影导演演员.xlsx') >>> df 电影名称 导演 演员 0 电影1 导演1 演员1,演员2,演员3,演员4 1 电影2 导演2 演员3,演员2,演员4,演员5 2 电影3 导演3 演员1,演员5,演员3,演员6 3 电影4 导演1 演员1,演员4,演员3,演员7 4 电影5 导演2 演员1,演员2,演员3,演员8 5 电影6 导演3 演员5,演员7,演员3,演员9 6 电影7 导演4 演员1,演员4,演员6,演员7 7 电影8 导演1 演员1,演员4,演员3,演员8 8 电影9 导演2 演员5,演员4,演员3,演员9 9 电影10 导演3 演员1,演员4,演员5,演员10 10 电影11 导演1 演员1,演员4,演员3,演员11 11 电影12 导演2 演员7,演员4,演员9,演员12 12 电影13 导演3 演员1,演员7,演员3,演员13 13 电影14 导演4 演员10,演员4,演员9,演员14 14 电影15 导演5 演员1,演员8,演员11,演员15 15 电影16 导演6 演员14,演员4,演员13,演员16 >>> pairs = [] >>> for i in range(len(df)): actors = df.at[i, '演员'].split(',') for actor in actors: pair = (actor, df.at[i, '电影名称']) pairs.append(pair)

>>> pairs = sorted(pairs, key=lambda item:int(item[0][2:])) >>> pairs [('演员1', '电影1'), ('演员1', '电影3'), ('演员1', '电影4'), ('演员1', '电影5'), ('演员1', '电影7'), ('演员1', '电影8'), ('演员1', '电影10'), ('演员1', '电影11'), ('演员1', '电影13'), ('演员1', '电影15'), ('演员2', '电影1'), ('演员2', '电影2'), ('演员2', '电影5'), ('演员3', '电影1'), ('演员3', '电影2'), ('演员3', '电影3'), ('演员3', '电影4'), ('演员3', '电影5'), ('演员3', '电影6'), ('演员3', '电影8'), ('演员3', '电影9'), ('演员3', '电影11'), ('演员3', '电影13'), ('演员4', '电影1'), ('演员4', '电影2'), ('演员4', '电影4'), ('演员4', '电影7'), ('演员4', '电影8'), ('演员4', '电影9'), ('演员4', '电影10'), ('演员4', '电影11'), ('演员4', '电影12'), ('演员4', '电影14'), ('演员4', '电影16'), ('演员5', '电影2'), ('演员5', '电影3'), ('演员5', '电影6'), ('演员5', '电影9'), ('演员5', '电影10'), ('演员6', '电影3'), ('演员6', '电影7'), ('演员7', '电影4'), ('演员7', '电影6'), ('演员7', '电影7'), ('演员7', '电影12'), ('演员7', '电影13'), ('演员8', '电影5'), ('演员8', '电影8'), ('演员8', '电影15'), ('演员9', '电影6'), ('演员9', '电影9'), ('演员9', '电影12'), ('演员9', '电影14'), ('演员10', '电影10'), ('演员10', '电影14'), ('演员11', '电影11'), ('演员11', '电影15'), ('演员12', '电影12'), ('演员13', '电影13'), ('演员13', '电影16'), ('演员14', '电影14'), ('演员14', '电影16'), ('演员15', '电影15'), ('演员16', '电影16')] >>> index = [item[0] for item in pairs] >>> data = [item[1] for item in pairs] >>> df1 = pd.DataFrame({'演员':index, '电影名称':data}) >>> result = df1.groupby('演员', as_index=False).count() >>> result 演员 电影名称 0 演员1 10 1 演员10 2 2 演员11 2 3 演员12 1 4 演员13 2 5 演员14 2 6 演员15 1 7 演员16 1 8 演员2 3 9 演员3 10 10 演员4 11 11 演员5 5 12 演员6 2 13 演员7 5 14 演员8 3 15 演员9 4 >>> result.columns = ['演员', '参演电影数量'] >>> result 演员 参演电影数量 0 演员1 10 1 演员10 2 2 演员11 2 3 演员12 1 4 演员13 2 5 演员14 2 6 演员15 1 7 演员16 1 8 演员2 3 9 演员3 10 10 演员4 11 11 演员5 5 12 演员6 2 13 演员7 5 14 演员8 3 15 演员9 4 >>> result.sort_values('参演电影数量') 演员 参演电影数量 3 演员12 1 6 演员15 1 7 演员16 1 1 演员10 2 2 演员11 2 4 演员13 2 5 演员14 2 12 演员6 2 8 演员2 3 14 演员8 3 15 演员9 4 11 演员5 5 13 演员7 5 0 演员1 10 9 演员3 10 10 演员4 11

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-04-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python小屋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档