Pandas学习笔记

1. Pandas作用:一个提供快速、可扩展和展现数据结构的Python库。目标是成为使用Python处理时间和实际数据分析的模块。

有两种数据结构:Series和DataFrame。

1)Series是一种类似于NumPy数组的对象,由一组数据(各种NumPy数据类型)和与之相关的一组数据标签(索引)组成的。

2)DataFrame是一种表格型结构,含有一组有序的列,每一列可以是不同的数据类型。有行索引、列索引。数据以一个或多个二维块存放。

2. 安装方法:

1)通过conda安装

conda install pandas

2)通过pip安装

python3 -m pip install --upgrade pandas

3. 主要特性:

  • 为浮点数和与浮点数精度丢失提供了简易的处理方法。
  • 大数据(数字很大,不是通常意义的大数据)的处理。
  • 自动而准确地处理数据队列。
  • 功能强大。
  • 能方便地转换不规则数据和差异数据。
  • 智能地处理大数据集的切片、子集。
  • 智能合并和连接数据集。
  • 灵活地调整数据集。
  • 从CSV、Excel和数据库中导入数据。

4. 用法(斜体字代表是参数)

  • 导入库
import numpy as np
import pandas as pd
需要操作文件时
import os
1)生成数据表(DataFrame)
  • 导入文件
df = pd.DataFrame(pd.read_csv('name.csv',header=1))
df = pd.DataFrame(pd.read_excel('name.xlsx'))
  • 创建表
    df = pd.DataFrame(<data>,<columns>)
    data是表中的数据,以key-value形式存储,key是列名,value是数据组成的数组。
  • columns就是列名组成的一个数组。

2)查看数据表信息

  • 维度查看:df.shape
  • 数据基本信息查看:df.info()
  • 每一列数据的格式:df.dtypes
  • 某一列格式:df['A'].dtype
  • 空值:df.isnull()
  • 查看某一列空值:df['A'].isnull()
  • 查看某一列的唯一值:df['A'].unique()
  • 查看数据表的值:df.values
  • 查看列名称:df.columns
  • 查看前10行数据:df.head()
  • 查看后10行数据:df.tail()

3) 数据表清洗

  • 用'a'填充空值:df.fillna(value='a')
  • 大小写转换:df['column1']=df['column1'].str.lower()
  • 更改数据格式:df['column1'].astype('format') 
  • 更改列名称:df.rename(columns={'name1': 'name2'})
  • 删除后出现的重复值:df['column1'].drop_duplicates()
  • 删除先出现的重复值:df['column1'].drop_duplicates(keep='last')
  • 数据替换:df['column1'].replace('a1', 'a2')

4)数据预处理

  • 数据表合并:df_merge=pd.merge(df,df1,how='<inner>,<left>,<right>,<outer>')
  • 设置索引列:df_merge.set_index('index')
  • 按照特定列的值排序:df_merge.sort_values(by=['value'])
  • 按照索引列排序:df_merge.sort_index()
  • 如果column1的值大于多少,column2显示p1,否则p2: df_merge['column2']=np.where(df_inner['column1']>value, 'p1','p2')
  • 对column1字段的值分为不同列,并创建数据表,索引值为df_merge的索引列column2,column3: pd.DataFrame((x.split('-') for x in df_merge['column1']),index=df_merge.index,columns=['column2','column3']))

5)数据提取

  • loc函数按标签值进行提取:df.loc[num]
  • iloc按位置进行提取:df.iloc[num1:num2] / df.iloc[:pos1,:pos2]
  • ix可以同时按标签和位置进行提取:

6)数据筛选

  • 与:df.loc[(df['column1']>value1) & (df['column2'] =='value2'),['column1','column2','column3','column4']]
  • 或:df.loc[(df['column1']>value1) | (df['column2'] =='value2'),['column1','column2','column3','column4']]
  • 非:df.loc[(df['column1'] != value1),['column1','column2','column3','column4']]
  • query:df.query('column1 == ["value1", "value2"]')

7)数据汇总

  • 计数器(groupby): df.groupby('column1').count()
  • 透视表(pivote_table): pd.pivot_table(df,index=["column"]

8)数据统计

  • 数据采样:第一参数为必填,第二、三个选填,二是手动设置采样哪一类,三是采样之后是否放回
  • df.sample(n="amount", attr=set_attr, replace=true/false)
  • 数据表描述性统计:df.describe().round(2).T
  • 计算列标准差:df['column'].std()
  • 计算字段间的协方差(不写参数则是所有字段之间的协方差):df['column1'].cov(df['column2'])
  • 字段相关性分析:df['column1'].corr(df['column2'])
  • 数据表相关性分析:df.corr()

9)数据输出

  • 写入excel:df.to_excel('name1.xlsx', sheet_name='name2')
  • 写入csv:df.to_csv('name.csv')
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值