Pandas数据分析 (二)

数据初步探索

数据展示与文本读写

 三种展示数据的方式

  • head()
  • tail()
  • sample()  

     1 import pandas as pd
     2 import numpy as np
     3
     4 df = pd.read_csv("anime.csv")
     5
     6 # head(n) 可以显示前 n 个样本,n默认为5
     7 df.head()
     8 df.head(2)
     9
    10 # tail(n) 显示末尾 n 个样本
    11 df.tail(2)
    12
    13 # sample(n) 从数据中随机采样得到 n 个样本
    14 df.sample(2)

文件读写

  Pandas提供了读取不同格式文件的接口

 1 # 在读取文件的时候,有许多必要的参数需要指定,以便得到的数据可以直接用于后续的数据分析
 2 # 分块读取
 3 chunker = pd.read_csv("anime.csv", chunksize=4)
 4 for piece in chunker:
 5     pass
 6 # 使用piece做后续处理
 7
 8 # get_chunk()方法可以读取任意大小的块
 9 df = pd.read_csv(‘anime.csv‘, iterator=True)
10 df.get_chunk(4)
  • 从文件读取数据很常用,把计算结果或数据结构所包含的数据写入数据文件也是一个必要操作,随时将终结结果持久化保存是一个良好的习惯
  • 在Pandas中,如果是一个DataFrame对象,可以使用 to_csv方法将该数据结构存入一个文件中
  • 在输出时,可以通过sys.stdout把最终存在文件中的内容打印出来,即直接输出在屏幕上

    1 # 读取 amine.csv 前三行,存入 anime_3.csv
    2 df = pd.read_csv(‘anime.csv‘, nrows=3)
    3 df.to_csv(‘anime_3.csv‘)
    4 import sys
    5 df.to_csv(sys.stdout)
    6
    7 # 指定 grade 为索引列的情况
    8 df = pd.read_csv(‘anime.csv‘, nrows=3)
    9 df.to_csv(sys.stdout, index=False)  #  防止读取文件时多出包含位置信息的一列

数据类型与数据筛选

  • 当一个 Series 只包含字符串或者包含多个数据类型时,dtype 是 object类型

    1 pd.Series([1, 2, ‘f‘])
    2 df.dtypes

类型转换

  • 对多列进行转换,向 astype()方法传入一个字典,字典中的键值对格式为列名:目标数据类型

数据筛选

- select_dtypes() 方法可以筛选出特定数据类型的特征
- 两个参数
    - include 筛选时选取的数据类型
    - exclude 筛选时剔除的数据类型
1 df.select_dtypes(include=object, exclude=‘int32‘)
2 df.dtypes
3 df.select_dtypes(exclude=‘int64‘)

描述性统计

  • 描述性统计包括

    • 将数据转换成一个具体数值的聚合方法,例如 sum(), mean() 和 求百分比 quantile()
    • 返回结果是一个series方法,例如累和cumsum(),累积cumprod()
  • 参数axis,默认 axis=0,对索引index进行操作,axis=1 对列 columns 进行操作

     1 df.mean(0)  # 返回所有列的均值
     2 df.mean(1)[:3]  # 计算前5个样本所有数值型特征的均值
     3
     4 df_number = df.select_dtypes(include=‘number‘)
     5 df_number.head(1)
     6
     7 df0 = df_number.iloc[0]
     8 df0.mean()
     9
    10 df.count()  # 查看非缺失值样本的数量

  

汇总统计

  • pandas 提供了四种常用的汇总方法

    • describe()
    • info()
    • cov()
    • corr()

       1 # describe() 方法可以查看各种特征的均值,标准差,最小值,最大值以及分位数
       2 df.describe()
       3
       4 # info() 方法显示各列数据的类型,非空值数量等
       5 df.info()
       6
       7 # cov() 协方差,描述各种特征之间的关系
       8 # 协方差的绝对值不反应线性相关的程度
       9 df.cov()
      10
      11 # corr() 相关系数,表示线性相关的方向和线性相关的程度,值域为[-1, 1]
      12 df.corr()

算术运算

  • pandas 对象在进行加减乘除二元运算时,会自动根据索引对齐数据
  • 不重叠的索引处会引入缺省值
  • 除了使用 +-*/ 外,add(), sub(), mul(),div()
  • 当一个 DataFrame对象与一个Series对象进行算术运算时,存在广播行为

缺失值的数量分析

  • isnull()

    • True => 1 False => 0 可以用 sum() 方法进行行列的缺失值个数求和
  • 缺失值填补
    • fillna() 方法进行填补
    • 第一种方法,使用同一个值进行填补所有的缺失值
      • df.fillna(0)
    • 第二种填补方式,使用前一个值huo后一个值进行填补,设置method参数实现
      • method 可选值,参数:fill/pad 前向填充值,bfill/backfill 后向填充值
      • df.fillna(method=‘fill‘)
    • 第三种填补方式,对不同列的缺失值使用不同的值进行填补
      • df.fillna({‘One‘: 0, ‘Three‘: 1})
    • 第四种填补方式, 使用一个pandas对象进行填补
      • 利用 pandas的自动对齐功能,直接向fillna() 传入 Pandas对象 df.fill(df.mean())

修改索引

  • 修改标签

    • 结合lambda函数实现,将所有列明的前两个字母转换为大写,其余为小写

        df.rename(columns=lambda x:x[:2].upper()+x[2:].lower())
1 # 层次化索引
2 data = pd.Series(np.random.randn(5), index=[[‘a‘, ‘a‘, ‘b‘, ‘b‘, ‘b‘], [‘a1‘, ‘a2‘, ‘b1‘, ‘b2‘, ‘b3‘]])
3
4 data.index

原文地址:https://www.cnblogs.com/xmdykf/p/12203352.html

时间: 2024-11-06 09:27:02

Pandas数据分析 (二)的相关文章

Python数据分析--Pandas知识点(二)

本文主要是总结学习pandas过程中用到的函数和方法, 在此记录, 防止遗忘. Python数据分析--Pandas知识点(一) 下面将是在知识点一的基础上继续总结. 13. 简单计算 新建一个数据表df 1 import pandas as pd 2 3 df = pd.DataFrame({"地区": ["A区","B区", "C区"], 4 "前半年销量": [3500, 4500,3800], 5

Python数据分析(二): Pandas技巧 (2)

Pandas的第一部分: http://www.cnblogs.com/cgzl/p/7681974.html github地址: https://github.com/solenovex/My-Machine-Learning-Notebook 很抱歉, 因为工作繁忙, 更新的比较慢. 数据的选取和索引 Pandas对数据的基本操作

Pandas 数据分析——超好用的 Groupby 详解

在日常的数据分析中,经常需要将数据根据某个(多个)字段划分为不同的群体(group)进行分析,如电商领域将全国的总销售额根据省份进行划分,分析各省销售额的变化情况,社交领域将用户根据画像(性别.年龄)进行细分,研究用户的使用情况和偏好等.在 Pandas 中,上述的数据处理操作主要运用 groupby 完成,这篇文章就介绍一下 groupby 的基本原理及对应的 agg.transform 和 apply 操作.PS:很多人在学习Python的过程中,往往因为遇问题解决不了或者没好的教程从而导致

pandas数据分析(数据结构)

本文主要从以下两个方向对pandas的数据结构进行展开,分别为Series和DataFrame(对应的分别是系列与numpy中的一维数组和二维数组) 1.首先从Series讲起,主要介绍Series的创建. 1) 可以通过一位数组进行创建序列 如:在python3.6中测试 #首先导入两个模块, import numpy as np import pandas as pd #创建第一个序列 array1=np.arange(10) print (array1) print(type(array1

pandas数据分析第二天

一:汇总和计算描述统计 pandas对象拥有一组常用的数据和统计方法,用于从Series中提取单个值(sum,mean)或者从DataFrame的行或者列中提取一个Series对应的Numpy数组方法相比 调用sum可以返回一个小计,传入axis=1会按照行进行计算, axis=0,按照列进行计算 sum或者mean里面可与约简方法的选项 axis  约简的轴,DateFrame的行为0,列为1 skipna 排除缺失值,默认为TRUE level  如果轴层次化索引的,则根据level分组约简

动态可视化 数据可视化之魅D3,Processing,pandas数据分析,科学计算包Numpy,可视化包Matplotlib,Matlab语言可视化的工作,Matlab没有指针和引用是个大问题

D3.js入门指南 什么是D3?D3是指数据驱动文档(Data-Driven Documents),根据D3的官方定义: D3.js是一个JavaScript库,它可以通过数据来操作文档.D3可以通过使用HTML.SVG和CSS把数据鲜活形象地展现出来.D3严格遵循Web标准,因而可以让你的程序轻松兼容现代主流浏览器并避免对特定框架的依赖.同时,它提供了强大的可视化组件,可以让使用者以数据驱动的方式去操作DOM. D3是这样一个特殊的JavaScript库,它利用现有的Web标准,通过更简单的(

Python - pandas 数据分析

pandas: powerful Python data analysis toolkit 官方文档: http://pandas.pydata.org/pandas-docs/stable/ 1. 导入包pandas import pandas as pd 2. 获取文件夹下文件名称 import os filenames=[]path="C:/Users/Forrest/PycharmProjects/test" for file in os.listdir(path): file

Pandas 数据分析基础

Pandas 安装 anaconda 安装: conda list pandas 查看是否已经安装 conda install pandas conda update pandas pip 安装 pip install pandas apt 安装 sudo apt-get install python-pandas 测试是否安装成功 nosetests pandases 不成功会进行提醒,可以重新安装或者更新 pandas数据结构 Series DataFrame Series 1 声明seri

Pandas数据分析练手题(十题)

数据集下载地址:https://github.com/Rango-2017/Pandas_exercises ---------------------------------------------------------------------------------------------------------------------- 1 - 开始了解你的数据 探索Chipotle快餐数据 -- 将数据集存入一个名为chipo的数据框内-- 查看前10行内容-- 数据集中有多少个列(c