千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > DataFrame的创建和基本操作

DataFrame的创建和基本操作

来源:千锋教育
发布人:syq
时间: 2022-08-12 13:30:00 1660282200

  前面我们介绍了Series知道它是类似于一维数组的对象,由一组数据以及之相关的数据标签(即索引)组成。今天介绍的**DataFrame**它是Pandas中的一个表格型的数据结构(即类似excel的**二维表**),包含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型等),而且DataFrame即有行索引也有列索引。

DataFrame的创建

  #### DataFrame的创建

  DataFrame的创建方式有如下几种:

  > 1. 通过等⻓列表创建

  > 2. 通过Numpy数组创建

  > 3. 通过字典创建

  > 4. 读取数据文件创建

  ##### 通过等⻓列表创建

  ```

  list1 = [[5,2,0,4],[2,3,4,5],[3,6,1,9],[4,1,0,8]]

  df=pd.DataFrame(list1)

  df

  ```

  默认会添加上行和列的索引(都是从0开始的依次往下递增)

屏幕快照 2021-05-13 下午5.28.43

  我们也可以设置索引值,通过index和columns属性

  ```

  list1 = [[5,2,0,4],[2,3,4,5],[3,6,1,9],[4,1,0,8]]

  df=pd.DataFrame(list1,index=list('1234'),columns=list('ABCD'))

  df

  ```

  则根据属性设置的索引展示

屏幕快照 2021-05-13 下午5.31.30

  上面的方式适合数据量贼小,才这样创建。

  ##### 通过Numpy数组创建

  比如我们需要创建一个随机数组成的4*6的DataFrame,同时设置行或者列索引,但是要根据自己的需求来定,可以如下:

  ```

  df=pd.DataFrame(np.random.randn(4,6),index=list('ABCD'),columns=list('123456'))

  df

  ```

  结果:

屏幕快照 2021-05-13 下午5.38.00

  但是要注意index和columns后面设置的索引要与数组的shape保持一致才可以,否则报错。

  ##### 通过字典创建

  通过字典创建就轻松很多,字典的数据可以来自爬虫,将爬取的各种数据保存成DataFrame的格式,便于日后的数据分析。

  假设我们有一组persons数据为字典格式:

  ```

  persons={'name':['小花','狗蛋','二狗','小草'],'age':[17,20,30,20],'gender':['女','男','男','女']}

  df=pd.DataFrame(dic1)

  df

  ```

  输出结果:

屏幕快照 2021-05-13 下午5.40.09

  ##### 读取数据文件创建

  如果你的数据在某个excel或者csv,又或者在数据库中,我们可以通过读取这些数据,转成DataFrame对象。

  > pd.read_csv(filepath_or_buffer,header,parse_dates,index_col)

  > 参数:

  >

  > 1. filepath_or_buffer:

  > 字符串,或者任何对象的read()方法。这个字符串可以是URL,有效的URL方案包括http、ftp、s3和文件。可以直接写入"文件名.csv"

  >

  > 2. header:

  > 将行号用作列名,且是数据的开头。

  > 注意当skip_blank_lines=True时,这个参数忽略注释行和空行。所以header=0表示第一行是数据而不是文件的第一行。

  >

  > 默认header=0(即第一行,索引从0开始)为列索引

  ```

  # 作用:将csv文件读入并转化为DataFrame对象。

  pd.read_csv('douyin.csv')

  输出结果:

屏幕快照 2021-05-13 下午5.48.14

  # 使用方法通过read_csv()

  pd.read_excel('阿里巴巴2017年股票数据.xlsx')

  ```

  输出结果:

屏幕快照 2021-05-13 下午5.53.57

  当然也可以连接数据库完成数据的DataFrame加载

  > 步骤1:创建连接对象,需要提前:pip install pymysql

  >

  > 其中user是你连接mysql数据库的用户名,password表示用户密码,database表示要连接的数据库名字,charset表示编码

  >

  > import pymysql

  >

  > con = pymysql.connect(host=localhost, user=username, password=password, database=dbname, charset=‘utf8’, use_unicode=True)

  >

  > 步骤2:定义sql语句

  >

  > sql_cmd = 'select * from 表名'

  >

  > df = pd.read_sql(sql_cmd, con)

  #### DataFrame对象的常用操作

  常用的属性有:

  > index:返回df的索引,即行标签

  >

  > columns:返回df的列名,即列标签

  >

  > df.dtypes:返回df每一列的数据类型

  >

  > df.values:以numpy的形式返回df中的值  

屏幕快照 2021-05-13 下午6.39.38

  常用操作有:

  > head() 使用head可以查看前几行的数据,默认的是前5行,不过也可以自己设置。

  >

  > tail(). 使用tail可以查看后几行的数据,默认也是5行,参数可以自己设置。

  >

  > astype(). 转换指定数据类型

  >

  > isna 检测缺失值

  >

  > notna 检测没有缺失值

  >

  > describe() 可以对数据根据列进行描述性统计,比如最大值,最小值等  

屏幕快照 2021-05-13 下午6.49.01 

屏幕快照 2021-05-13 下午6.50.03

  同理df.notna() 检测没有缺失值,与df.isna()相反,就不演示了。

屏幕快照 2021-05-13 下午6.52.27

  更多关于python培训的问题,欢迎咨询千锋教育在线名师。千锋教育拥有多年IT培训服务经验,采用全程面授高品质、高体验培养模式,拥有国内一体化教学管理及学员服务,助力更多学员实现高薪梦想。

  注:本文部分文字和图片来源于网络,如有侵权,请联系删除。版权归原作者所有! 

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT