将数据中导演与演员的关系整理出来,得到导演与演员的关系数据,并统计合作次数

  1. import numpy as np
  2. import pandas as pd
  3. import matplotlib.pyplot as plt
  4. % matplotlib inline
  5.  
  6. import warnings
  7. warnings.filterwarnings('ignore')
  8. # 不发出警告
  1. # 读取数据
  2.  
  3. import os
  4. # os.chdir('C:/Users/Hjx/Desktop/')
  5. os.chdir(r'C:\Users\Administrator\Desktop\ch0304_data')
  6. df = pd.read_excel('豆瓣电影数据.xlsx',sheetname=0,header=0)
  7. print('数据总共%i条' % len(df))
  8. print('数据字段为:\n',df.columns.tolist())
  9. df.head(2)
  10. # 查看数据

  1. #数据清洗
  2. data = df[['name', '导演', '主演']]
  3. data.dropna(inplace = True)
  4. data.head()

  1. data_yy = data['主演'].str.split('/ ', expand=True)
  2. col_len1 = len(data_yy.columns)
  3. data_yy.columns = ['yy'+str(i) for i in range(col_len1)]
  4. data_yy.head()

  1. data_dy = data['导演'].str.split('/ ', expand=True)
  2. col_len2 = len(data_dy.columns)
  3. data_dy.columns = ['dy'+str(i) for i in range(col_len2)]
  4. data_dy.head()

  1. data2 = data_dy.join(data_yy).join(data['name'])
  2. data2.head()

  1. #拆分+合并
  2.  
  3. data_re = pd.DataFrame(columns=['name','导演','演员'])
  4. # 创建一个空的Dataframe
  5.  
  6. col_yy = data_yy.columns
  7. col_dy = data_dy.columns
  8.  
  9. for dy in col_dy:
  10. for yy in col_yy:
  11. data_i = data2[['name', dy, yy]].dropna() # 提取数据
  12. data_i.columns = ['name', '导演', '演员'] ## 列名重命名
  13. # print(data_i)
  14. data_re = pd.concat([data_re, data_i]) # 添加数据
  15. print(data_re.head())

# 遍历数据后,得到一个导演与演员的关系数据,并做去重处理
# 这里index是有重复的,但作为过程数据可忽略

  1.  

  1. # 汇总统计导演和演员的合作次数
  2.  
  3. result = data_re.groupby(['导演','演员']).count()
  4. result.reset_index(inplace=True)
  5. result.columns = ['导演','演员','合作次数']
  6. print(result.head())
  7. # 按照导演-演员进行计数统计,得到结果数据
  8. # reset_index() → 将所有索引级别转换为列
  9.  
  10. writer = pd.ExcelWriter('output.xlsx')
  11. result.to_excel(writer,'sheet1')
  12. writer.save()
  13. # 存为excel
  14. # 注意:output.xlsx文件不能是打开状态
  15.  
  16. print('finished!')

关系网络数据可视化:2. Python数据预处理的更多相关文章

  1. 【数据科学】Python数据可视化概述

    注:很早之前就打算专门写一篇与Python数据可视化相关的博客,对一些基本概念和常用技巧做一个小结.今天终于有时间来完成这个计划了! 0. Python中常用的可视化工具 Python在数据科学中的地 ...

  2. 分形、分形几何、数据可视化、Python绘图

    本系列采用turtle.matplotlib.numpy这三个Python工具,以分形与计算机图像处理的经典算法为实例,通过程序和图像,来帮助读者一步步掌握Python绘图和数据可视化的方法和技巧,并 ...

  3. caffe(13) 数据可视化(python接口)配置

    caffe程序是由c++语言写的,本身是不带数据可视化功能的.只能借助其它的库或接口,如opencv, python或matlab.大部分人使用python接口来进行可视化,因为python出了个比较 ...

  4. 数据可视化:使用python代码实现可视数据随机漫步图

    #2020/4/5 ,是开博的第一天,希望和大家相互交流学习,很开森,哈哈~ #像个傻子哟~       #好,我们进入正题, #实现功能:利用python实现数据随机漫步,漫步点数据可视化 #什么是 ...

  5. 数据透视:Excel数据透视和Python数据透视

    作者 | leo 早于90年代初,数据透视的概念就被提出,主要的应用场景是处理大量数据的交互式汇总查询,它实现了行或列的移动,使得行可以移到列上,列移到行上,从而根据使用者的诉求取对关注的数据子集进行 ...

  6. 数据可视化(8)--D3数据的更新及动画

    最近项目组加班比较严重,D3的博客就一拖再拖,今天终于不用加班了,赶紧抽点时间写完~~ 今天就将D3数据的更新及动画写一写~~ 接着之前的博客写~~ 之前写了一个散点图的例子,下面可以自己写一个柱状图 ...

  7. <数据可视化>样例+数据+画图

    1 样例 1.1样例1 子图系列 from pylab import * def f(x): return np.exp(-x) * np.cos(2*np.pi*x) x1 = np.arange( ...

  8. Python数据可视化的四种简易方法

    摘要: 本文讲述了热图.二维密度图.蜘蛛图.树形图这四种Python数据可视化方法. 数据可视化是任何数据科学或机器学习项目的一个重要组成部分.人们常常会从探索数据分析(EDA)开始,来深入了解数据, ...

  9. 从python爬虫以及数据可视化的角度来为大家呈现“227事件”后,肖战粉丝的数据图

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取t.cn ...

  10. python grib气象数据可视化

    基于Python的Grib数据可视化           利用Python语言实现Grib数据可视化主要依靠三个库——pygrib.numpy和matplotlib.pygrib是欧洲中期天气预报中心 ...

随机推荐

  1. js——字符串处理

    字符串不能修改,所以修改后的结果都是以一个新的字符串返回,原串不改变 1. 创建字符串和typeof           - 空字符串 var str = ""; - " ...

  2. STM32L476应用开发之七:流量的PID控制

    在气体分析仪使用过程中,为了力求分析结果的准确性,一般要求通过的气体流量尽可能的稳定.为了保证流量控制的稳定,我们采用PID调节来控制气路阀门的开度. 1.硬件设计 我们采用的流量计为气体质量流量计, ...

  3. Java的家庭记账本程序(D)

    日期:2019.2.8 博客期:031 星期一 今天是把程序的查询功能以列表的形式完成了! 截图如下:

  4. SpringAOP面向切面编程

    Spring中三大核心思想之一AOP(面向切面编程): 在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的 ...

  5. LeetCode(125):验证回文串

    Easy! 题目描述: 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: "A man, ...

  6. mysql where和having的区别

    简单描述:需要查询一个数量count,于是做分组查询后,发现有的数据没有过滤掉,于是就想加上过滤条件,就在group by后边写了where ,发现不好使,直接就报错了,查了一下,where只能写在g ...

  7. Laravel 中通过自定义分页器分页方法实现伪静态分页链接以利于 SEO

    我们知道,Laravel 自带的分页器方法包含 simplePaginate 和 paginate 方法,一个返回不带页码的分页链接,另一个返回带页码的分页链接,但是这两种分页链接页码都是以带问号的动 ...

  8. laravel 路由模型绑定

    我们在使用路由的时候一个很常见的使用场景就是根据资源 ID 查询资源信息: Route::get('task/{id}', function ($id) { $task = \App\Models\T ...

  9. Linux 编程笔记(四)

    一.用户和用户组管理 添加新的用户账户使用useradd 格式useradd   选项  用户名 1.创建一个用户tian 其中 -d -m参数用来为登陆,登录名产生一个主目录 /usr/tian(其 ...

  10. hdu4966 最小树形图+虚根

    /* 辛辛苦苦调试半天, 过了样例,竟然没有ac!! 网上对比了ac代码,感觉添加一个虚根就能ac 但是想不明白为什么 */ /* 第二天想了下,知道了为什么wa:因为从等级0连到其他课程等级i的不止 ...