《Pandas数据处理》课件 5.2.2 统计各地区不同风格的电影数量_第1页
《Pandas数据处理》课件 5.2.2 统计各地区不同风格的电影数量_第2页
《Pandas数据处理》课件 5.2.2 统计各地区不同风格的电影数量_第3页
《Pandas数据处理》课件 5.2.2 统计各地区不同风格的电影数量_第4页
《Pandas数据处理》课件 5.2.2 统计各地区不同风格的电影数量_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

统计各地区不同风格的电影数量主讲人:岑远红重庆市九龙坡职业教育中心问题描述根据电影信息统计各地区各类型的电影有多少部表5.2.14电影信息表

电影名称导演编剧编剧人数主演类型制片国家/地区语言0比得兔威尔·古勒威尔·古勒/罗伯·列博/碧翠丝·波特3詹姆斯·柯登/多姆纳尔·格里森/萝丝·拜恩/伊丽莎白·德比茨基/玛格特·罗比/黛西·雷德利/...喜剧/动画/冒险美国

/英国/澳大利亚英语1龙门飞甲徐克徐克/何冀平/朱雅欐3李连杰/周迅/陈坤/李宇春/桂纶镁/范晓萱/樊少皇/杜奕衡/刘家辉/张馨予/盛鉴/薛剑/王双...剧情/动作/武侠/古装中国大陆

/中国香港汉语普通话输出结果表5.2.15电影类型统计表类型冒险剧情动作动画历史古装喜剧...科幻脱口秀运动音乐地区

Austria0100000...0000Czechoslovakia0000001...0000不丹0100000...0000东德0100000...0000中国327151147...0000.......................................香港0100000...0000马其顿0200000...0000马来西亚0610102...0010马耳他1120100...1000黎巴嫩0400000...0000题前思考问题描述问题解答结果表中的行索引来自哪一列?行索引来自于“制片国家/地区”列结果表中的列索引来自哪一列?列索引来自于“类型”列如何将源表中的多个类型或地区分拆成单个类型和地区?使用Series.str.split()方法以”/”为标志分割成类型或地区构成的列表表5.2.3 问题分析importpandasaspdfromitertoolsimportproductimportreblank=pile(r'\s+')①m=pd.read_csv(r"D:\pydata\项目五\movies.csv")m['zone']=m['制片国家/地区'].str.replace(blank,'',regex=True).str.split('/')②m['genrus']=m['类型'].str.replace(blank,'',regex=True).str.split('/')m.dropna(subset=['zone','genrus'],axis=0,inplace=True)③m['res']=m.apply(lambdas:list(product(s['zone'],s['genrus'])),axis=1)④res=pd.DataFrame(sum(m['res'],[]),columns=['地区','类型'])⑤pd.crosstab(index=res['地区'],columns=res['类型'])⑥程序代码importpandasaspdfromitertoolsimportproductimportreblank=pile(r'\s+')①m=pd.read_csv(r"D:\pydata\项目五\movies.csv")m['zone']=m['制片国家/地区'].str.replace(blank,'',regex=True).str.split('/')②m['genrus']=m['类型'].str.replace(blank,'',regex=True).str.split('/')m.dropna(subset=['zone','genrus'],axis=0,inplace=True)③m['res']=m.apply(lambdas:list(product(s['zone'],s['genrus'])),axis=1)④res=pd.DataFrame(sum(m['res'],[]),columns=['地区','类型'])⑤pd.crosstab(index=res['地区'],columns=res['类型'])⑥程序代码定义表示匹配一到多个空字符的正则表达式。importpandasaspdfromitertoolsimportproductimportreblank=pile(r'\s+')①m=pd.read_csv(r"D:\pydata\项目五\movies.csv")m['zone']=m['制片国家/地区'].str.replace(blank,'',regex=True).str.split('/')②m['genrus']=m['类型'].str.replace(blank,'',regex=True).str.split('/')m.dropna(subset=['zone','genrus'],axis=0,inplace=True)③m['res']=m.apply(lambdas:list(product(s['zone'],s['genrus'])),axis=1)④res=pd.DataFrame(sum(m['res'],[]),columns=['地区','类型'])⑤pd.crosstab(index=res['地区'],columns=res['类型'])⑥程序代码用/对地区和类型数据进行分割,作为分割结果的列表成为新列添加到数据框。程序代码'zone'列的值如下:0

[美国,英国,澳大利亚]1

[中国大陆,中国香港]2

[中国大陆]3

[中国大陆]4

[中国大陆]

...

8120

[美国,英国]8121

[中国大陆,美国,中国香港]8122

[美国]8123

[中国大陆,印度]8124

[日本]Name:zone,Length:8125,dtype:object'genrus'列的值如下:0

[喜剧,动画,冒险]1

[剧情,动作,武侠,古装]2

[剧情,悬疑,恐怖]3

[剧情,喜剧,犯罪]4

[喜剧,动作,冒险]

...

8120

[剧情,动画,奇幻]8121

[剧情,喜剧,动作]8122

[爱情,动画,歌舞,家庭,奇幻]8123

[喜剧,动作,冒险]8124

[动画,悬疑]Name:genrus,Length:8125,dtype:objectimportpandasaspdfromitertoolsimportproductimportreblank=pile(r'\s+')①m=pd.read_csv(r"D:\pydata\项目五\movies.csv")m['zone']=m['制片国家/地区'].str.replace(blank,'',regex=True).str.split('/')②m['genrus']=m['类型'].str.replace(blank,'',regex=True).str.split('/')m.dropna(subset=['zone','genrus'],axis=0,inplace=True)③m['res']=m.apply(lambdas:list(product(s['zone'],s['genrus'])),axis=1)④res=pd.DataFrame(sum(m['res'],[]),columns=['地区','类型'])⑤pd.crosstab(index=res['地区'],columns=res['类型'])⑥程序代码删除'zone'和'genrus'两列中有空值的行。importpandasaspdfromitertoolsimportproductimportreblank=pile(r'\s+')①m=pd.read_csv(r"D:\pydata\项目五\movies.csv")m['zone']=m['制片国家/地区'].str.replace(blank,'',regex=True).str.split('/')②m['genrus']=m['类型'].str.replace(blank,'',regex=True).str.split('/')m.dropna(subset=['zone','genrus'],axis=0,inplace=True)③m['res']=m.apply(lambdas:list(product(s['zone'],s['genrus'])),axis=1)④res=pd.DataFrame(sum(m['res'],[]),columns=['地区','类型'])⑤pd.crosstab(index=res['地区'],columns=res['类型'])⑥程序代码调用duct()函数求每一行数据中'zone'列和'genrus'列的笛卡尔积。程序代码’res’列的值如下:0

[(美国,喜剧),(美国,动画),(美国,冒险),(英国,喜剧),(英国,...1

[(中国大陆,剧情),(中国大陆,动作),(中国大陆,武侠),(中国大陆,古装...2

[(中国大陆,剧情),(中国大陆,悬疑),(中国大陆,恐怖)]3

[(中国大陆,剧情),(中国大陆,喜剧),(中国大陆,犯罪)]4

[(中国大陆,喜剧),(中国大陆,动作),(中国大陆,冒险)]

...

8120

[(美国,剧情),(美国,动画),(美国,奇幻),(英国,剧情),(英国,...8121

[(中国大陆,剧情),(中国大陆,喜剧),(中国大陆,动作),(美国,剧情),...8122

[(美国,爱情),(美国,动画),(美国,歌舞),(美国,家庭),(美国,...8123

[(中国大陆,喜剧),(中国大陆,动作),(中国大陆,冒险),(印度,喜剧),...8124

[(日本,动画),(日本,悬疑)]Name:res,Length:8107,dtype:objectimportpandasaspdfromitertoolsimportproductimportreblank=pile(r'\s+')①m=pd.read_csv(r"D:\pydata\项目五\movies.csv")m['zone']=m['制片国家/地区'].str.replace(blank,'',regex=True).str.split('/')②m['genrus']=m['类型'].str.replace(blank,'',regex=True).str.split('/')m.dropna(subset=['zone','genrus'],axis=0,inplace=True)③m['res']=m.apply(lambdas:list(product(s['zone'],s['genrus'])),axis=1)④res=pd.DataFrame(sum(m['res'],[]),columns=['地区','类型'])⑤pd.crosstab(index=res['地区'],columns=res['类型'])⑥程序代码用’res’列中的所有二元组构成一个二元组的列表,然后再以这个列表创建一个数据框。程序代码sum(m['res'],[])的结果如下:[('美国','喜剧'),

('美国','动画'),

('美国','冒险'),

('英国','喜剧'),

('英国','动画'),

('英国','冒险'),

('澳大利亚','喜剧'),

('澳大利亚','动画'),

('澳大利亚','冒险'),

('中国大陆','剧情'),…]创建好的数据框如表5.2.17所示。表5.2.17电影的地区-类型表

地区类型0美国喜剧1美国动画2美国冒险3英国喜剧4英国动画.........28561印度喜剧28562印度动作28563印度冒险28564日本动画28565日本悬疑importpandasaspdfromitertoolsimportproductimportreblank=pile(r'\s+')①m=pd.read_csv(r"D:\pydata\项目五\movies.csv")m['zone']=m['制片国家/地区'].str.replace(blank,'',regex=True).str.split('/')②m['genrus']=m['类型'].str.replace(blank,'',regex=True).str.split('/')m.dropna(subset=['zone','genrus'],axis=0,inplace=True)③m['res']=m.apply(lambdas:list(product(s['zone'],s['genrus'])),axis=1)④res=pd.DataFrame(sum(m['res'],[]),columns=['地区','类型'])⑤pd.crosstab(index=res['地区'],columns=res['类型'])⑥程序代码以地区为行索引(index=res['地区'])以类型为列索引(columns=res['类型'])创建交叉表。程序代码表5.2.18在原数据框追加一列v

地区类型v0美国喜剧11美国动画12美国冒险13英国喜剧14英国动画1............28561印度喜剧128562印度动作128563印度冒险128564日本动画128565日本悬疑1对v值进行计数,结果为一个序列地区

类型Austria

剧情

1

歌舞

1Czechoslovakia

喜剧

1

不丹

剧情

1

..马耳他

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论