动手学数据分析 01

课程现分为三个单元,大致可以分为:数据基础操作,数据清洗与重构,建模和评估。

1 第一章:数据载入及初步观察

第一部分:我们获得一个要分析的数据,我要学会如何加载数据,查看数据,然后学习Pandas的一些基础操作,最后开始尝试探索性的数据分析。

1 第一章:数据加载

import numpy as np
import pandas as pd
相对路径
df = pd.read_csv('train.csv')
df.head(3)

绝对路径
df = pd.read_csv('/Users/chenandong/Documents/datawhale数据分析每个人题目设计/招募阶段/第一单元项目集合/train.csv')
df.head(3)

每1000行为一个数据模块,逐块读取

chunker = pd.read_csv('train.csv', chunksize=1000)

修改表头

df = pd.read_csv('train.csv', names=['乘客ID','是否幸存','仓位等级','姓名','性别','年龄','兄弟姐妹个数','父母子女个数','船票信息','票价','客舱','登船港口'],index_col='乘客ID',header=0)
df.head()

查看数据基本信息

df.info()

观察数据

前十行数据
df.head(10)

后15行数据
df.tail(15)

判断数据是否为空,为空的地方返回True,其余地方返回False

df.isnull().head()

保存数据为csv格式

注意:不同的操作系统保存下来可能会有乱码。大家可以加入encoding='GBK' 或者 ’encoding = ’utf-8‘‘
df.to_csv('train_chinese.csv')

dataframe、series、ndarray。

ndarray

ndarray是Numpy库中的矩阵模块,可以创建n维的数组对象,所有元素必须是相同的类型,比如你的元素是字符,那就全部都是字符。

  • 创建
import numpy as np
arr=np.array([[1,2,3],[4,5,6],[7,8,9]],dtype=np.int32 )
print(arr)

Series

类似于1维数组,由索引+数值组成

  • 创建
import pandas as pd
s=pd.Series(['a','b','c','d'])

DataFrame

重磅来了!dataframe是非常常见的一个表格型数据结构,每一列可以是不同的数值类型,有行索引、列索引。提到它就会自然想到Pandas这个包。平常用Python处理xlsx、csv文件,读出来的就是dataframe格式。

  • 创建

可以单独创建,也可以由别的类型转换过来:列表、series、字典等等。

import pandas as pd
df=pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]],columns=['a','b','c'])

【数据分析入门】之:dataframe和series – 知乎

loc和iloc的区别

loc:works on labels in the index.

iloc:works on the positions in the index (so it only takes integers).

也就是说loc是根据index来索引,比如下边的df定义了一个index,那么loc就根据这个index来索引对应的行。iloc并不是根据index来索引,而是根据行号来索引,行号从0开始,逐次加1。

In [1]: df = DataFrame(randn(5,2),index=range(0,10,2),columns=list('AB'))

In [2]: df
Out[2]:
          A         B
0  1.068932 -0.794307
2 -0.470056  1.192211
4 -0.284561  0.756029
6  1.037563 -0.267820
8 -0.538478 -0.800654

In [5]: df.iloc[[2]]
Out[5]:
          A         B
4 -0.284561  0.756029

In [6]: df.loc[[2]]
Out[6]:
          A         B
2 -0.470056  1.192211

对数据进行排序(升序)

具体请看《利用Python进行数据分析》第五章 排序和排名 部分

#自己构建一个都为数字的DataFrame数据
frame = pd.DataFrame(np.arange(8).reshape((2, 4)),
                     index=['2', '1'],
                     columns=['d', 'a', 'b', 'c'])
frame

【代码解析】

pd.DataFrame() :创建一个DataFrame对象

np.arange(8).reshape((2, 4)) : 生成一个二维数组(2*4),第一列:0,1,2,3 第二列:4,5,6,7

index=[‘2, 1] :DataFrame 对象的索引列

columns=[‘d’, ‘a’, ‘b’, ‘c’] :DataFrame 对象的索引行

大多数时候我们都是想根据列的值来排序,所以,将你构建的DataFrame中的数据根据某一列,升序排列
frame.sort_values(by='c', ascending=True)
让行索引升序排序
frame.sort_index()
让列索引升序排序
frame.sort_index(axis=1)
让列索引降序排序
frame.sort_index(axis=1, ascending=False)
让任选两列数据同时降序排序
frame.sort_values(by=['a', 'c'], ascending=False)

Original: https://blog.csdn.net/qq_40478639/article/details/121938132
Author: Zzz_25
Title: 动手学数据分析 01

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/740799/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Python 敌机出场

    目标 使用 定时器 添加敌机 设计 Enemy 类1、使用定时器添加敌机运行 备课代码,观察 敌机的 出现规律:1)、游戏启动后,每隔 1 秒 会 出现一架敌机;2)、每架敌机 向…

    Python 2023年9月22日
    049
  • PyQt5 GUI:百度图片下载器(文末附源码)

    通过 Pyqt5 实现一个界面化的下载器,在通过网络请求实现各种类型的图片的下载。可以通过界面上输入不同图片的关键字从而实现下载图片并将下载好的图片保存到自定义的文件路径中。 文末…

    Python 2023年5月24日
    095
  • CyberCat赛博猫,进阶版AXIE

    欢迎各位新老朋友,我们细说P2E(Play to Earn),为广大用户提供一个深入了解链游的平台。不定期的跟大家分享一些精品项目和最新链游方向,也欢迎大家关注我们。我们第十六期分…

    Python 2023年9月20日
    050
  • Python装饰器与迭代器的学习教程

    1什么是装饰器 装饰器就是装饰别人的工具,具体是指为被装饰者添加新功能,为一个新函数添加新功能 2为何要用装饰器 (开放封闭原则) 为了不修改被装饰者的源代码以及调用方式的前提下,…

    Python 2023年10月30日
    063
  • weditor 0.6.5版本安装报 ‘gbk’ codec can’t decode byte 0xad in position

    pip安装或者更新 weditor到最新的0.6.5版本时会报错,如下: 解决办法: 设置环境变量,在命令窗口中执行: 然后再次执行pip install weditor==0.6…

    Python 2023年6月11日
    0126
  • 【Python数据分析案例】python数据分析老番茄B站数据(pandas常用基础数据分析代码)

    一、爬取老番茄B站数据 二、python数据分析 1、读取数据源 2、查看数据概况 3、查看异常值 4.1、查看最大值(max函数) 4.2、查看最小值(min函数) 5.1、查看…

    Python 2023年5月24日
    083
  • Python——使用GDAL操作栅格数据(自用)

    range()函数 range()函数返回的是可迭代对象,不是列表类型 val1=range(5,0,-1) print(val1) (1) range(stop),例如range…

    Python 2023年8月29日
    073
  • Wireshark 实验

    实验一 ipconfig 实作一 实作二 ping 实作一 实作二 tracert 实作一 实作二 ARP 实作一 实作二 实作三 DHCP 实作一 netstat 实作一 实作二…

    Python 2023年9月30日
    054
  • Django的安全性

    啊哦~你想找的内容离你而去了哦 内容不存在,可能为如下原因导致: ① 内容还在审核中 ② 内容以前存在,但是由于不符合新 的规定而被删除 ③ 内容地址错误 ④ 作者删除了内容。 可…

    Python 2023年8月5日
    041
  • CentOS7部署Flask(安装mod_wsgi遇到的坑)

    最近在Windows下写了个小东西,打算发布到内部的centos7服务器上,部门内部使用。参考以下链接准备开干:CentOS7部署Flask 结果因为我提前装了apache,再按上…

    Python 2023年8月13日
    083
  • Python实时垃圾分类系统(环境教程&完整源码&数据集)

    1.背景 如今,垃圾分类已成为社会热点话题。其实在2019年4月26日,我国住房和城乡建设部等部门就发布了《关于在全国地级及以上城市全面开展生活垃圾分类工作的通知》,决定自2019…

    Python 2023年10月9日
    0100
  • 宝塔配置应用管理器(django)

    抵扣说明: 1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。 Original: https://blo…

    Python 2023年8月6日
    061
  • zk系列三:zookeeper实战之分布式锁实现

    一、分布式锁的通用实现思路 分布式锁的概念以及常规解决方案可以参考之前的博客:聊聊分布式锁的解决方案;今天我们先分析下分布式锁的实现思路; 首先,需要保证唯一性,即某一时点只能有一…

    Python 2023年10月15日
    085
  • Python数据分析—pandas类库常用方法

    一.pandas Pandas是用于数据操纵和分析,建立在Numpy之上的。Pandas为Python带来了两种新的数据结构:Pandas Series和Pandas DataFr…

    Python 2023年8月9日
    058
  • APP自动化测试框架搭建(五)–Python+Appium+pytest-html

    第一章 APP自动化环境搭建(Mac版)第二章 APP自动化环境搭建(Windows版)第三章 adb命令第四章 元素定位、元素操作第五章 APP自动化测试框架搭建 Python+…

    Python 2023年9月10日
    051
  • zabbix items 历史数据导出python脚本

    个人博客地址 http://www.darkghost.life zabbix items采集到的数据不支持页面导出,这对于需要源数据进行二次加工或生成报表来说不是很友好 做个小脚…

    Python 2023年6月6日
    083
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球