pandas详细介绍
pandas 详细介绍
- 1 pandas官网
- 1.1 官网
- 1.2 其他可用网站
- 2 pandas 概要介绍
- 3 pandas之Series
- 3.1 概要说明
- 3.1.1 说明
- 3.1.2 Series与list、ndarray区别
- 3.2 创建方式
- 3.2.1 通过列表创建
- 3.2.2 通过ndarray创建
- 3.2.3 通过range创建
- 3.2.4 通过字典创建
- 3.2 常用属性
- 3.2 常见函数
- 3.2.1 取值
- 3.2.2 计算
- 3.2.3 将函数传递过去、分组、window(没写)
- 3.2.4 series元素状态获取
- 3.2.5 重新组合、排序等操作
- 3.2.6 丢失数据处理
- 3.2.7 重新排序
- 3.2.8 连接、比较
- 3.2.9 时间相关---暂时省略
- 3.2.10 string相关
- 3.2.11 plot相关 Series.plot
- 3.2.12 序列化相关
- 4 pandas之DataFrame
- 4.1 概要说明
- 4.2 创建方式
- 4.2.1 由字典创建
- 4.2.2 由数组创建
- 4.3 常用属性
- 4.4 常见函数
- 4.4.1 取值
- 4.4.2 操作
- 4.4.3 传入函数当作参数
- 4.4.4 DataFrame元素状态获取
- 4.4.5 DataFrame重新组合、排序等操作
- 4.4.6 丢失数据处理
- 4.4.7 重新排序
- 4.4.8 连接、比较
- 4.4.9 时间相关---暂时省略
- 4.4.10 plot相关 DataFrame.plot
- 4.4.12 序列化相关
- 5 pandas之其他函数
1 pandas官网
1.1 官网
https://pandas.pydata.org/
1.2 其他可用网站
2 pandas 概要介绍
Pandas 库是一个免费、开源的第三方 Python 库,是Python数据分析必不可少的工具之一。其基于numPy 库开发而来, 提供了两种数据结构,Series(一维数组结构)与 DataFrame(二维数组结构),这两种数据结构极大地增强的了 Pandas 的数据分析能力。
3 pandas之Series
3.1 概要说明
3.1.1 说明
Series是pandas中最基本的对象,类似于一维数组。实际上它就是基于numpy的一维数组ndarray发展而来的。但区别在于它提供了index,索引。
3.1.2 Series与list、ndarray区别
list列表
列表中的元素可以是不同的数据类型,使用从0开始的整数值作为默认索引;ndarray数组
数组中的元素必须是同种数据类型,也是使用从0开始的整数值作为默认索引;Series序列
是一种一维的结构,类似于一维列表和ndarray中的一维数组,但是功能比他们要更为强大,Series由两部分组成:索引index和数值values;区别
一维列表和一维数组中都是采用从0开始的整数值作为默认索引,索引值一般不显示的给出,但是我们可以通过索引去获取其中的元素。对于Series来说,默认索引也是从0开始的整数值作为默认索引,但是是显示地给出,更为强大的是,Series中的索引可以随意设置,方便我们取数
3.2 创建方式
通过构造函数来创建:
Series([data, index, dtype, name, copy, ...])
具体说来data的几种形式:
3.2.1 通过列表创建
my_list = [1,3,4,2]
se1 = pd.Series(my_list,index=list('abcd'),dtype=np.float32)
3.2.2 通过ndarray创建
my_array = np.arange(1,6)
se2 = pd.Series(my_array)
3.2.3 通过range创建
se3=pd.Series(range(0,10))
3.2.4 通过字典创建
x = dict(a=22,b=10,c=5)
y = pd.Series(x)
3.2 常用属性
se3=pd.Series(range(0,10)) #定义
- se3.values 获取值:#array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], dtype=int64)
- se3.dtype 返回类型:#dtype(‘int64’)
- se3.shape 返回元组,包括形状: #(10,)
- se3.nbytes 返回字节个数#80
- se3.ndim 返回维数 #1
- se3.size 返回数据个数 #个数
- se3.empty 是否为空,true or false
3.2 常见函数
3.2.1 取值
定义: se3=pd.Series(range(3,10),index=list(‘abcdefg’))
- se3.at[‘a’] #返回某index的某数
- se3.iat[0] #返回某位置的某数
- se3.loc[[‘a’,‘b’]] #返回某index们的某数
- se3.iloc[0:3] #返回某位置们的某数
- se3.iloc[[0,1,2]] #返回某位置们的某数
- se3.keys().to_list() #[‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘g’]#返回所有index
- se3.items()
#所有的items(index和value的元组们)
举例:
for index,value in se3.items():
print(“index is {},value is{}\n”.format(index,value))
3.2.2 计算
加、减、乘、除、取余、乘方、取模、均值等各种运算
3.2.3 将函数传递过去、分组、window(没写)
(1) Series.apply
Series.apply(func, convert_dtype=True, args=(), **kwargs)
将series的values应用于函数,传过去的应该是所有的values
(2) Series.agg,或者Series.aggregate
Series.agg(func=None, axis=0, *args, **kwargs)
也是计算,比如pd.Series([1, 2, 3, 4]).agg(‘min’)
(3) Series.transform(func, axis=0, *args, **kwargs)
其中func可以为系统提供函数,也可以为自定义函数等,也可以为各种函数的组合。
(4)Series.map
Series.map(arg, na_action=None),传递的参数可以是dict等
比如:
s = pd.Series([‘cat’, ‘dog’, np.nan, ‘rabbit’])
s.map({‘cat’: ‘kitten’, ‘dog’: ‘puppy’})
就会输出:
s.map({'cat': 'kitten', 'dog': 'puppy'})0 kitten1 puppy2 NaN3 NaNdtype: object
(5) Series.groupby
Series.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=NoDefault.no_default, observed=False, dropna=True)
ser.groupby(["a", "b", "a", "b"]).mean()
ser.groupby(level=0).mean()
ser.groupby(ser > 100).mean()
ser.groupby(level=0, dropna=False).sum()
3.2.4 series元素状态获取
Series.all() 是否所有的元素均为true
Series.any(),是否有元素为true
Series.between(left,right),是否各个元素都在left和right之间
Series.count() 返回非nan的个数
Series,max,mean,median,min,nlargest(n),nsmallest(n),sum
返回的分别是序列中的最大值、平均值、中值、最小值、最大的n个值、最小的n个值、和等Series.value_counts() 返回的是一个series,存储的原series中的各个元素和出现的次数。
3.2.5 重新组合、排序等操作
- Series.align(other[, join, axis, level, …]) 合并series
- Series.drop([labels, axis, index, columns, …]) 移除某元素
- Series.drop_duplicates([keep, inplace]) 移除重复元素
- Series.duplicated([keep]) 各元素是否是重复元素
- Series.equals(other) 是否完全相同
- Series.head([n]) 前n行
- Series.isin(values) 值是否在values中
- Series.idxmax([axis, skipna]) 最大值的序号
- Series.idxmin([axis, skipna]) 最小值的序号
- Series.reindex([index]) 按照index重新展示表
- 其他一些,参见手册
3.2.6 丢失数据处理
(1) 判断是否为na
- Series.isna() 各元素是否为na
- Series.isnull() 各元素是否为na
- Series.notna() 各元素是否为na
- Series.notnull() 各元素是否为na
- Series.dropna([axis, inplace, how]) 扔掉na的剩余元素组成
- Series.fillna,Series.bfill,Series.ffill 填充,后填充,前填充等
- Series.replace(pos,value),可以是列表替换,也可以是字典替换
3.2.7 重新排序
- Series.sort_values([axis, ascending, …]) 排序
- Series.sort_index([axis, level, ascending, …]) 排序
3.2.8 连接、比较
- Series.append 连接 将二者连接
- Series.compare 比较 显示出二者的差异
3.2.9 时间相关—暂时省略
3.2.10 string相关
Series.str可以取出Series各元素,转化为str,再去进行操作
3.2.11 plot相关 Series.plot
- Series.plot.bar
- Series.plot.hist
- Series.plot.pie
- Series.plot.line
- Series.plot.box等
3.2.12 序列化相关
- Series.to_csv
- Series.to_dict
- Series.to_excel
- Series.to_xarray
- Series.to_json
- Series.to_sql
- Series.to_string
- Series.to_xarray
4 pandas之DataFrame
4.1 概要说明
是pandas中的主要数据组织形式。为二维数组,尺寸可变的,数据类型可以多种。包含行、列、可以对行、列分别处理。
可以被认为是一个存储Series的字典容器
4.2 创建方式
class pandas.DataFrame(data=None, index=None, columns=None, dtype=None, copy=None)
4.2.1 由字典创建
d = {'col1': [1, 2], 'col2': [3, 4]}
df = pd.DataFrame(data=d)
dfcol1 col2
0 1 3
1 2 4
4.2.2 由数组创建
df2 = pd.DataFrame(np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]),columns=['a', 'b', 'c'])a b c
0 1 2 3
1 4 5 6
2 7 8 9
4.3 常用属性
- df1.index #返回行信息
- df1.columns #返回列信息
- df1.values #返回二维数组的数据
- df1.info
- df1.axes #返回列表,第一个元素是行信息,第二个元素是列信息
- df1.dtypes #类型
- df1.shape #返回包含行列信息的数组
- df1.ndim #返回维度
- df1.size #返回包含的个数
- df1.empty #是否为空dataframe,返回一个true或者false
- df1.style #同display的效果,就会格式化了
4.4 常见函数
4.4.1 取值
- df1.head(n)
- df1.tail(n)
- df1.at[‘a’,“name”]
- df1.iat[0,0]
- df1.loc[‘a’] #根据描述定位
- df1.iloc[0] #根据位置定位
- df1.keys() #相当于dict的key.
column.Index([‘name’, ‘sex’], dtype=‘object’) - df1.insert(loc,column_name,value) #插入一列,loc指的是插入位置
- df1.items()和df1.iteritems()
for label, content in df1.iteritems():print(f'label: {label}')print(f'content: {content}', sep='\n')#打印的是每列的Series
- df1.pop(column_name) 把某一列去掉
- df1.where(条件) 返回的是各个元素满足此条件的情况
- df1.mask 与where相反
- df1.isin() 返回的是各个元素处于此区间的情况
4.4.2 操作
加减乘除求和求指数等等等等
指的都是当中的各个元素分别来计算.
4.4.3 传入函数当作参数
- DataFrame.apply
DataFrame.apply(func, axis=0, raw=False, result_type=None, args=(), **kwargs)[source]
- DataFrame.agg
DataFrame.agg(func=None, axis=0, *args, **kwargs)
举例:对A列的数据求取两个函数,对B列的数据求取另外的函数
df.agg({'A' : ['sum', 'min'], 'B' : ['min', 'max']})A B
sum 12.0 NaN
min 1.0 2.0
max NaN 8.0
- DataFrame.transform(func, axis=0, *args, **kwargs)
其中func可以为系统提供函数,也可以为自定义函数等,也可以为各种函数的组合。
s = pd.Series(range(3))
s
0 0
1 1
2 2
dtype: int64
s.transform([np.sqrt, np.exp])sqrt exp
0 0.000000 1.000000
1 1.000000 2.718282
2 1.414214 7.389056
- DataFrame.groupby
函数定义:
DataFrame.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=NoDefault.no_default, observed=False, dropna=True)
比如:
df.groupby([‘Animal’]).mean()
4.4.4 DataFrame元素状态获取
DataFrame.all()
如果不传参,则默认以列为单位,来判断是否各列数据均为True,返回的是一个series,index为列名.
如果传参为columns(axis=‘columns’),则以列为单位,来判断是否各列数据均为True.返回的是一个series,0,1等为列名.
如果传参为columns(axis=None),则不是各列判断,而是判断所有元素,返回一个true还是false的结果.DataFrame.any(),是否有元素为true, 样式同all
DataFrame.count() 返回各列非nan的个数, 如果传参axis=0或者’index’,则是返回各行非nan的个数
DataFrame,max,mean,median,min,nlargest(n),nsmallest(n),sum
返回的分别是序列中的最大值、平均值、中值、最小值、最大的n个值、最小的n个值、和等DataFrame.value_counts() 返回的是一个series,存储的原series中的各个元素和出现的次数。!!!但是这个官网说是有,但是试验时又提醒错误,说没有.
4.4.5 DataFrame重新组合、排序等操作
- DataFrame.align 合并
- DataFrame.drop 移除某元素
- DataFrame.drop_duplicates 移除重复元素
- DataFrame.duplicated 各元素是否是重复元素
- DataFrame.equals 是否完全相同
- DataFrame.head 前n行
- DataFrame.filter可以过滤出某列或者某模糊字段等
- DataFrame.first
- DataFrame.last
- DataFrame.isin(values) 值是否在values中
- DataFrame.idxmax([axis, skipna]) 最大值的序号
- DataFrame.idxmin([axis, skipna]) 最小值的序号
- DataFrame.reindex([index]) 按照index重新展示表
- DataFrame.reindex
- DataFrame.rename可以修改index或者columns
- DataFrame.set_axis
- DataFrame.set_index等
4.4.6 丢失数据处理
- DataFrame.isna() 各元素是否为na
- DataFrame.isnull() 各元素是否为na
- DataFrame.notna() 各元素是否为na
- DataFrame.notnull() 各元素是否为na
- DataFrame.dropna([axis, inplace, how]) 扔掉na的剩余元素组成
- DataFrame.fillna,DataFrame.bfill,DataFrame.ffill 填充,后填充,前填充等
- DataFrame.replace(pos,value),可以是列表替换,也可以是字典替换
4.4.7 重新排序
- DataFrame.sort_values([axis, ascending, …]) 排序
- DataFrame.sort_index([axis, level, ascending, …]) 排序
- DataFrame.nlargest(n, columns[, keep]) 对哪个column来取最大的n个
- DataFrame.nsmallest(n, columns[, keep]) 对哪个column来取最小的n个
4.4.8 连接、比较
- DataFrame.append 连接 将二者连接
- DataFrame.compare 比较 显示出二者的差异
- DataFrame.join
- DataFrame.merge
- DataFrame.update
各个的区别:
4.4.9 时间相关—暂时省略
4.4.10 plot相关 DataFrame.plot
- DataFrame.plot.area
- DataFrame.plot.bar
- DataFrame.plot.hist
- DataFrame.plot.pie
- DataFrame.plot.line
- DataFrame.plot.box等
4.4.12 序列化相关
- DataFrame.to_csv
- DataFrame.to_dict
- DataFrame.to_excel
- DataFrame.to_json
- DataFrame.to_sql
- DataFrame.to_string 等
5 pandas之其他函数
暂缺
pandas详细介绍相关推荐
- pythonexcel介绍_Python 中pandas.read_excel详细介绍
Python 中pandas.read_excel详细介绍 #coding:utf-8 import pandas as pd import numpy as np filefullpath = r& ...
- pandas读取行列数据-详细介绍(连续不连续)
pandas读取行列数据-详细介绍 1.按行读取(单行,多行连续,多行不连续) 2.按列读取(单列,多列连续,多列不连续) 3.部分不连续行不连续列 4.按位置(坐标),按字符(索引) 5.函数有 d ...
- python绘图和可视化_Python 绘图和可视化详细介绍
Python之绘图和可视化 1. 启用matplotlib 最常用的Pylab模式的IPython(IPython --pylab) 2. matplotlib的图像都位于Figure对象中. 可以使 ...
- python 熊猫_python之pandas简单介绍及使用(一)
一. Pandas简介 1.Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的.Pandas 纳入了大量库和 ...
- 数据科学 IPython 笔记本 7.4 Pandas 对象介绍
7.4 Pandas 对象介绍 原文:Introducing Pandas Objects 译者:飞龙 协议:CC BY-NC-SA 4.0 本节是<Python 数据科学手册>(Pyth ...
- python使用pandas模块介绍以及使用,dataframe结构,Series结构,基本数据操作,DataFrame运算,pandas画图,存储,缺失值处理,离散化,合并
目录 1 pandas介绍 1.1 Pandas介绍 1.2 为什么使用Pandas 1.3 案例:在numpy当中创建的股票涨跌幅数据形式 1.4 DataFrame 1.4.1 DataFrame ...
- python 偏函数_详细介绍Python中的偏函数
机器学习实战之Logistic回归 本文来自云栖社区官方钉群"Python技术进阶",了解相关信息可以关注"Python技术进阶". 本系列教程特点: 基于&l ...
- 机器学习算法——详细介绍 集成学习,以及什么是Bagging、随机森林、Boosting、XGBoost
目录 一.集成学习算法简介 1.什么是集成学习 2.机器学习的两个核心任务 3.集成学习中boosting和Bagging 4.小结 二.Bagging和随机森林 1.Bagging集成原理 2.随机 ...
- HTML页面加载和解析流程详细介绍
浏览器加载和渲染html的顺序.如何加快HTML页面加载速度.HTML页面加载和解析流程等等,在本文将为大家详细介绍下,感兴趣的朋友不要错过 浏览器加载和渲染html的顺序 1. IE下载的顺序是从上 ...
最新文章
- 语言输出换行符号是什么_世界上最难的5种编程语言
- python自动操作excel_Python自动化办公之操作Excel
- 致Go学习者, 该跟大佬学习做项目了
- html所有页面根的对象,在django中显示来自所有用户的对象,无需登录到html页面...
- Lightbox JS v2.0
- modbus rtu 协议转DLT645-2007和DLT645-1997电表协议转换器定制,
- 时间同步服务 chrony
- C语言结构体内存布局问题
- Ubuntu 16.04中iptables的工具简介(iptables/iptables-restore/iptables-xml/iptables-apply/iptables-save)...
- python写excel
- 5G加速向纵深发展 中国电信联合产业链开展“5G创新终端商用合作行动”
- 工作流 节点子线程_节点JS体系结构–单线程事件循环
- 第六章 类型和成员基础
- 数学建模1---基本方法和步骤
- math_Taylor_常见幂级数展开
- 编译原理支配树部分名词介绍
- ruby_Ruby简介
- 移动硬盘无法读取是怎么回事?
- 数字货币钱包 HD Wallet的助记词和种子的生成原理(BIP39)
- 面试官问你的职业生涯规划是什么,该如何回答?
热门文章
- CSS(层叠样式表cascading style sheet)——CSS样式、基础选择器
- 可以用计算机模拟人体,科学家用超级计算机和3D打印模拟人体血管网
- 移远EC20 Opencpu方案调试记录 - 打电话 发短信 接收短信 定位(郑州新正圆)
- 什么是次世代游戏?一个新人从零基础成为次世代游戏建模师需要哪些阶段?
- 不高清,看个球?EGS(弹性GPU服务)助力世界杯高清直播。
- 激进技术派 vs 项目保守派的微服务架构之争
- ESXi虚拟机定时关机
- IOS系列——键盘的简单操作
- MATLAB中判断矩阵是否存在负数及负数的个数
- 接红包游戏 html5,游粉H5红包游戏互动,最直接高效的营销方式