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

描述性统计

  • 描述性统计包括
    • 将数据转换成一个具体数值的聚合方法,例如 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()

 

1 # 层次化索引
2 data = pd.Series(np.random.randn(5), index=[['a', 'a', 'b', 'b', 'b'], ['a1', 'a2', 'b1', 'b2', 'b3']])
3 
4 data.index
posted @ 2020-01-16 21:30  小喵钓鱼  阅读(403)  评论(0编辑  收藏  举报