Pandas库常用知识记录
Pandas主要有两种数据结构,series和dataframe。
Series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一组与之相关的数据标签(即索引)组成,即index和values两部分,可以通过索引的方式选取Series中的单个或一组值。创建series可使用
import pandas as pd
pd.Series(list,index=[ ])
第二个参数是Series中数据的索引,可以省略。
主要常用的是Dataframe,是一个表格型的数据类型,每列值类型可以不同。创建dataframe可用:
pd.DataFrame(data,columns = [ ],index = [ ])
如:
data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada', 'Nevada'],'year': [2000, 2001, 2002, 2001, 2002, 2003],'pop': [1.5, 1.7, 3.6, 2.4, 2.9, 3.2]}
pd.DataFrame(data, columns=['year', 'state', 'pop'],
index=['one', 'two', 'three', 'four', 'five', 'six'])
从csv和excel读入数据:
df = pd.DataFrame(pd.read_csv('xxx.csv',header=1))
df = pd.DataFrame(pd.read_excel('xxx.xlsx'))
(注:以下常用的用加粗标注)
查看表信息:
- df1.shape 维度查看
- df1.info() 基本信息查看
- df1.dtypes 每一列的数据格式
- df1['some_column'].dtype 某一列的数据格式
- df1.isnull 是否空值
- df1['some column'].unique 某一列的唯一值
- df1.values 查看数据表的值
- df1.columns 查看列名称
- df1.head/df.tail 查看前/后五行
数据访问:
- df1.loc[3] 访问行
- df1['city'] 访问列
- df1=df1.set_index('index') 设置日期为索引
- df1[:'2020-10-27'] 提取10月27日之前所有数据
- df1.iloc[:3,:2] 使用iloc按位置区域访问数据,前三行,前两列
- df1.iloc[[0,2,6],[6,8]] 访问0,2,6行,6,8列
- df1.ix[:'2020-10-27', :4] 使用ix按索引标签和位置混合访问数据, 2020.10.27之前,前四列数据
- df1['city'].isin(['chengdu']) 判断city列的值是否为成都
- df1.loc[df1['city'].isin(['chongqing', 'chengdu'])] 将city列里是重庆或成都的数据提取出来
- pd.DataFrame(category.str[:3]) 提取前三个字符,并生成数据表
数据筛选:
- df1.loc[(df1['age']>25)&(df1['city']=='chengdu'), ['id', 'city', 'age', 'gender']] 使用与筛选。或|
- df1.loc[(df1['city'] != 'chengdu'), ['id', 'city', 'age', 'gender']].sort(['id']).city.count() 对筛选后的数据按city列进行计数
- df1.query('city == ['chengdu', 'chongqing']') 使用query函数进行筛选
- df1.query('city == ['chengdu', 'chongqing']').price.sum() 对筛选后的结果price进行求和
数据汇总
- df1.groupby('city').count() 按城市对所有列进行计数
- df1.groupby('city')['id'].count() 按城市对id字段进行计数
- df1.groupby(['city', 'size'])['id'].count() 对两个字段进行汇总计数
- df1.groupby('city')['price'].agg([len, np.sum, np.mean]) 对city字段进行汇总,并分别计算price的和与均值
数据统计:
- df1.sample(n=3) 简单的数据采样
- df1.sample(n=2, weights=[0, 0, 0, 0, 0.5, 0.5]) 手动设置采样权重
- df1.sample(n=6, replace=False) 采样后不放回(True为放回)
- df1.describe().round(2).T 数据表描述性统计(round函数设置显示小数位,T表示转置)
- df1['price'].std() 计算列的标准差
- df1['price'].cov(df1['m-point']) 计算两个字段间的协方差(df1.cov() 为计算所有字段间的协方差)
- df1['price'].corr(df1['m-point']) 两个字段的相关性分析(-1到1之间,1正相关,0不相关,-1负相关)
- df1.corr() 对数据表的相关性分析
数据表清洗:
- df.fillna(value=0) 用0填充空值
- df['ages'].fillna(df['ages'].mean()) 用平均年龄填充年龄空值
- df['city']=df['city'].str.lower 清除city字段的字符空格
- df['city']=df['city'].str.lower() 大小写转换
- df['price'] = df['price'].astype('float') 更改数据格式
- df.rename(coulmns={'category': 'category2'}) 更改列名称
- df['name'].drop_duplicates(keep='last') 删除先出现的重复值,默认是删除后面的重复值
- df['city'].replace('cd', 'Chengdu')
数据预处理
表合并
- df_merged = pd.merge(df1, df2, how='inner') 表连接 how包括'inner, 'left', 'right', 'outer'
- df_appended = pd1.append(df2) 表格2加入到表格1
- result = pd1.join(pd2, on='key')
- result = pd.concat([df1, df2, df3], axis=0, join='outer',join_axes=None...copy=True)
其他处理
- df1.set_index('id') 设置索引列
- df1.sort_index() 按照索引列排序
- df1.sort_values(by=['age']) 按照特定列的值排序
- df1['group']=np.where(df['age']>60, 'old','young') 如果age大于60,group显示old,否则显示young
- df1.loc[(df1['city']=='chengdu')&(df['salary']>=8000), 'sign']=1 对满足多个条件的数据进行分组标记
数据输出
- df1.to_csv('./xxxxx.csv') 写入到csv
- df1.to_excel('xxxxx.xlsx', sheet_name='hello')
Pandas库常用知识记录相关推荐
- 数据分析一、 pandas库基础知识
pandas库基础知识 一.jupyter 代码编辑器 概述:Python 数据分析库介绍 二.pandas 库基础知识 (1)常用的Series属性与方法: (2) DataFrame常用方法 1. ...
- Pandas库常用函数和操作
目录 1. DataFrame 处理缺失值 dropna() 2. 根据某维度计算重复的行 duplicated().value_counts() 3. 去重 drop_duplicates( ...
- Python之Pandas库常用函数大全(含注释)
前言:本博文摘抄自中国慕课大学上的课程<Python数据分析与展示>,推荐刚入门的同学去学习,这是非常好的入门视频. 继续一个新的库,Pandas库.Pandas库围绕Series类型和D ...
- pandas 库前置知识
pandas 库 Pandas 创建一个 Series 对象 pd.Series() 创建一个 DataFrame 对象 pd.DataFrame() 数据清洗 缺失值 NaN 查找缺失值 isna( ...
- 总结(5)--- Numpy和Pandas库常用函数
二.常用库 1.NumPy NumPy是高性能科学计算和数据分析的基础包.部分功能如下: ndarray, 具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组. 用于对整组数据进行快速运算的标准 ...
- Pandas库(2):数据的统计分析
1.0 Pandas 中的数据类型: Series Dataframe 一维 二维的.表格型 每个元素都有各自的标签(数字/字符) 可储存多个不同类型数据,每个轴都有标签 可视为一个由带标签的元素组成 ...
- python数据分析的钥匙——pandas库
目录 系列文章目录 一. 关于pandas库: 二. pandas库的安装 三. pandas的两种基本数据结构--Series 与 DataFrame(附代码) 四. pandas库的应用(附代码) ...
- Python学习笔记(十七)——Pandas库
数组只能存储一种类型的数据, 同时, 数组提供了许多方便统计计算的功能 (如平均值 mean .标准差 std 等) pandas与numpy的区别 pandas 是基于 numpy 数组构的, 但 ...
- python中pandas格式_Python学习笔记之数据分析中Pandas常用知识
前言 Pandas基于两种数据类型:series与dataframe. 一个series是一个一维的数据类型,其中每一个元素都有一个标签.series类似于Numpy中元素带标签的数组.其中,标签可以 ...
最新文章
- 手把手教你搭建 ELK 实时日志分析平台
- ThroughRain第一次冲刺(每天更新)
- 使用async await 封装 axios
- 编写测试用例的方法_适合小白的测试用例编写方法,一看就会!
- 笑脸符号怎么存入mysql_让MySql支持Emoji表情存储
- 网站开发与客户之间的流程
- 用大白话彻底搞懂 HBase RowKey 详细设计
- vbs按钮传递过程_哈希传递攻击仍然是一种威胁
- N76E003的学习之路(一)
- CCF NOI1121 逆波兰表达式
- 使用group by rollup和group by cube后的辅助函数
- SCM供应链管理系统解决方案:助力企业采购流程高效运行,全面降低供应链风险
- Number 数字类型详解
- 没有MsVCp140如何安装MysQl,怎样安装msvcp140.dll_msvcp140.dll安装教程
- 哪吒故里之争:讲好地方故事,真这么难?
- CTFSHOW 萌新赛 萌新记忆
- QT Desinger设计程序主界面 PyUIC生成.py
- 太酷了,手把手教你用 Python 绘制桑基图
- 2020最新pycharm汉化安装(亲测有效)
- 我们的Twitter帐号http://twitter.com/cosmocommerce
热门文章
- 《SQL必知必会(第五版)》数据库导入
- 在Android中访问内置SE和基于SE的卡模拟(一)
- php红包互助源码_互助盘源码php
- 最大数和最小数(排序)
- Delphi处理高速文件上传下载的代码及思路
- MATLAB 快速标注序列日期
- java web孤傲苍狼,JavaWeb学习笔记
- NC 登录时,报“java.lang.reflect.UndeclaredThrowableException:null”错误
- Android 地理位置定位
- Tp5.0完全开发手册学习(第八章 模型)