利用 python 进行数据分析

利用 python 进行数据分析

numpy基础

基础

函数 说明
array 将输入数据(列表,元祖,数组或者其他序列类型)转化为ndarray,要么判断出dtype,要么显示指定dtype。默认直接复制输入数据
asarray 将输入转换为ndarray,如果输入本身就是一个ndarray就不进行复制d
arange 类似于内置的range,但放回的是一个ndarray而不是列表
ones,ones_like 根据制定的形状和dtype创建一个全1数组。ones_like以另一个数组为参数,并根据其形状和dtype创建一个全1数组
zeros,zeros_like 类似于ones和ones_like,只不过产生的是全0数组而已
empty,empty_like 创建新数组,只分配内存空间但不填充任何值
eye,identity 创建一个正方的N*N单位矩阵(对角线为1,其余为0)

通用函数

函数 说明
abs,fabs 计算整数、浮点数或复数的绝对值。对于非复数值,可以使用更快的fabs
sqrt 计算元素的平方根。相当于arr**0.5
square 计算元素的平方。相当于arr**2
exp 计算各元素的指数e^x
log,log10,log2,log1p 分别为自然对数(底数为e)、底数为10的log、底数为2的log、log(1+x)
sign 计算各元素的正负号:1,0,-1
ceil 计算各元素的ceiling值,即大于等于该值得最小整数
floor 计算各元素的floor值,即小于等于该值的最大整数
rint 计算各元素值四舍五入到最接近的整数,保留dtype
modf 将数组的小数和整数部分以两个独立数组的形式返回
isnan 返回一个表示“那些值是NAN(这不是一个数字)”的布尔型数组
isfinite,isinf 分别放回一个表示“那些元素是有穷的“或”那些元素是无穷的“的布尔型数组
cos、cosh、sin、sinh、tan、tanh 普通型和双曲型三角函数
arccos、arccosh、arcsin、arcsinh、arctan、arctanh 反三角函数
logical_not 计算各元素not x的真值。相当于-arr
add 将数组中对应的元素相加
subtract 从第一个数组中减去第二个数组中的元素
multiply 数组元素相乘
divide,floor_divide 除法或向下圆整除法
power 对第一个数组中的元素,根据第二个数组中的相应元素,计算A^B
maximum,fmax 元素级的最大值计算。fmax将忽略NaN
minimum,fmin 元素级的最小值计算。fmin将忽略NaN
mod 元素级的求模计算
copysign 将第二个数组中的值得符号复制给第一个数组中的值
less、less_equal,equal,not_equal 算符>,>=,<,<=,==,!=
logical_and、logical_or,logical_xor 执行元素级的真值逻辑运算。相当于中缀运算符&、

基本数组统计方法

方法 说明
sum 对数组中全部或某轴向的元素求和。零长度的数组的sum为0
mean 算术平均数。零长度的数组的mean为Nan
std、var 分别为标准差和方差,自由度可调(默认为n)
min、max 最大值和最小值
argmin、argmax 分别为最大和最小元素的索引
cumsum 所有元素的累计和
cumprod 所有元素的累计积

数组的集合运算

方法 说明
unique(x) 计算x中的唯一元素,并返回有序结果
intersect1d(x,y) 计算x和y中的公共元素,并返回有序结果
union1d(x,y) 计算x和y的并集,并返回有序结果
in1d(x,y) 得到一个表示“x的元素是否包含于y”的布尔型数组
setdiff1d(x,y) 集合的差,即元素在x中且不在y中
setxor1d(x,y) 集合的对称差,即存在于一个数组中但不同时存在于两个数组中的元素

常用的numpy.linalg函数

函数 说明
diag 以一维数组的形式返回方针的对角线(或非对角线)元素,或将一维数组转换为方阵(非对角线元素为0)
dot 矩阵乘法
trace 计算对角线元素的和
det 计算矩阵行列式
eig
inv 计算方阵的逆
pinv 计算矩阵的eMoore——Penrose伪逆
qr 计算QR分解( square and triangle)
svd 计算奇异值分解(SVD)
solve 解线性方程组Ax=b,其中A为一个方阵
lstsq 计算Ax=b的最小二乘解

部分numpy.random函数

函数 说明
seed 确定随机数生成器的种子
permutation 返回一个序列的随机排列或返回一个随机排列的方法
shuffle 对一个序列地随机排列
rand 产生均匀分布的样本值
randint 从给定的上下限范围内随机选取整数
randn 产生正太分布(平均值为0,标准差为1)的样本值
binomial 产生二项分布的样本值 (二项分布就是重复n次独立的伯努利试验。在每次试验中只有两种可能的结果,而且两种结果发生与否互相对立,并且相互独立,与其它各次试验结果无关,事件发生与否的概率在每一次独立试验中都保持不变,则这一系列试验总称为n重伯努利实验,当试验次数为1时,二项分布服从0-1分布)
normal 产生正态(高斯)分布的样本值
beta 产生Beta分布的样本值(贝塔分布(Beta Distribution) 是一个作为伯努利分布和二项式分布的共轭先验分布的密度函数,在机器学习和数理统计学中有重要应用)
chisquare 产生卡方分布的样本值(若n个相互独立的随机变量ξ₁,ξ₂,…,ξn ,均服从标准正态分布(也称独立同分布于标准正态分布),则这n个服从标准正态分布的随机变量的平方和构成一新的随机变量,其分布规律称为卡方分布(chi-square distribution))
gamma 产生Gamma分布的样本值(伽玛分布(Gamma Distribution)是统计学的一种连续概率函数,是概率统计中一种非常重要的分布。“指数分布”和“χ2分布”都是伽马分布的特例。 [1] )
uniform 产生在[0,1)中均匀分布的样本值

https://blog.csdn.net/bitcarmanlee/article/details/82156281
说的比较全面

pandas

Series

类型 说明
二维ndarray 数据矩阵,还可以传入行标和列标
由数组、列表或元组组成的字典 每个序列会变成DataFrame的一列。所有序列的长度必须相同
numpy的结构化/记录数组 类似于“由数组组成的字典”
由Series组成的字典 每个Series会成为一列。如果没有显式指定索引,则各Series的索引会被合并成结果的并索引
有字典组成的字典 各内层字典会成为一列。键会被合并结果的行索引,跟‘由Series组成的字典’的情况一样
字典或Series的列表 各项将会成为Dataframe的一行。字典键或Series索引的并集将会成为DataFrame的列标
由列表或元组组成的列表 类似于“二维ndarray”
另一个DataFrame 该DataFrame的索引将会被沿用,除非显示指定了其他索引
Numpy的MaskedArray 类似于“二维ndarray”的情况,只是掩码值在结果DataFrame会变成NA/缺失值

pandas中主要的Index对象

说明
Index 最泛化的Index对象,将轴标签表示为一个由python对象组成的numpy数组
Int64Index 针对整数的特殊Index
MultiIndex “层次化”索引对象,表示单个轴上的多层索引。可以看做由元组组成的数组
DatetimeIndex 存储纳秒级时间戳(用NumPy的datetime64类型表示)
PeriodIndex 针对Period数据(时间间隔)的特殊Index
方法 说明
append 连接另一个Index对象,产生一个新的Index
diff 计算差集,并得到一个Index
intersection 计算交集
union 计算并集
方法 说明
append 连接另一个Index对象,产生一个新的Index
diff 计算差集,并得到一个Index
intersection 计算交集
union 计算并集
isin 计算一个指示各值是否都包含在参数集合中的布尔型数组
delete 删除索引i处的元素,并得到新的Index
drop 删除传入的值,并得到新的Index
Insert 将元素插入到索引i处,并得到新的Index
is_monotonic 将各元素均大于等于前一个元素时,返回True
is_unique 当Index没有重复值时,返回True
unique 计算Index中唯一值得数组

reindex的(插值)method选项

参数 说明
ffill或pad 前向填充(或搬运)值
bfill或backfill 后向填充(或搬运)值

reindex函数的各参数及说明

参数 说明
index 用作索引的新序列。既可以是Index实例,又可以是其他序列型的python数据结构。Index会被完全使用,就像没有任何复制一样
method 插值(填充)方式,具体参数请参见上面
fill_value 在重新索引的过程中,需要引入缺失值时使用的替代值
limit 前后或后向填充时的最大填充量
level 在multiIndex的指定级别上匹配简单索引,否则选取其子集
copy 默认是True

灵活的算术方法

方法 说明
add 用于加法(+)的方法
sub 用于减法(-)的方法
div 用于除法(/)的方法
mul 用于乘法(*)的方法

排名时用于破坏平级关系的method选项

method 说明
average 默认:在相等分组中,为各个值分配平均排名
min 使用整个分组的最小排名
max 使用整个分组的最大排名
first 安置在袁术数据中出现的顺序分配排名

约简方法的选项

选项 说明
axis 约简的轴。DataFrame的行用0,列用1
skipna 排除缺失值,默认值为True
level 如果轴是层次化索引的,则根据level分组约简

描述和汇总统计

方法 说明
count 非NA值得数量
describe 针对Series或各DataFrame列计算汇总统计
min、max 计算最小值和最大值
argmin、argmax 计算能够获取到最小值和最大值的索引位置
idxmin、idxmax 计算能够获取到最小值和最大值的索引值
quantile 计算样本的分位数(0到1)
sum 值得总和
mean 值的平均值
median 值的算术中位数
mad 根据平均值计算平均绝对离差
var 样本值的方差
std 样本值的标准差
skew 样本值的偏度(三阶矩)
kurt 样本值的峰度(四阶矩)
cumsum 样本值得累积和
cummin、cummax 样本值得累积最大值和累积最小值
cumprod 样本值的累计积
diff 计算一阶差分
pct_change 计算百分数变化

相关系数和协方差

英语 意义
corr 相关系数
cov 协方差

唯一值、值计数、成员资格方法

方法 说明
isin 计算一个表示“Series各值是否包含于传入的值得序列中”的布尔型数组
unique 计算Series中的唯一值数组,按发现的顺序返回
value_counts 返回一个Series,其索引为唯一值,其值为频率,按计数值降序排列

处理缺失数据

方法 说明
dropna 根据各标签的值中是否存在确实数据对轴标签的进行过滤,可通过阀值调节对缺失值的容忍度
fillna 用指定值或插值方法(如fill或bfill)填充缺失数据
isnull 返回一个含有布尔值的对象,这些布尔值表示那些值是缺失值/NA,该对象的类型与源类型一样
notnull isnull的否定式

fillna函数的参数

参数 说明
value 用于填充缺失值得标量值或字典对象
method 插入方式。如果函数调用时未指定其他参数的话,默认为‘ffill’
axis 待填充的轴,默认axis=0
inplace 修改调用对象而不产生副本
limit (对于前向和后向填充)可以连续填充的最大数量

层次化索引

层次化索引是pandas的一项重要功能,它使你能在一个轴上拥有多个(两个以上)索引级别。抽象点说,它能
使你能以低维度形式处理高维度数据。

数据加载、存储与文件格式

函数 说明
read_csv 从文件、URL、文件型对象中加载带分隔符的数据
read_table 从文件、URL、文件型对象中加载带分隔符的数据
read_clipboard 读取剪贴板中的数据,可以看做read_table的剪贴板。在网页转换为表格时很有用

read_csv/read_table函数的参数

参数 说明
path 表示文件系统位置、URL、文件型对象的字符串
sep或delimiter 用于对行中各字段进行拆分的字符序列或正则表达式
header 用作列名的行号。
index_col 用作行索引的列编号或列名。可以是单个名称/数字或由多个名称、数字组合的列表
names 用于结果的列名列表,结合header=None
skiprows 需要忽略的行数,或需要跳过的行号列表
na_values 一组用于替换NA的值
comment 用于将注释新消息从行尾拆分出去的字符
parse_dates 尝试将数据解析为日期,默认为False。如果为True,则尝试解析所有列。此外,还可以指定需要解析的一组列好或列名。如果列表的元素为列表或元组,就会将多个列组合到一起再进行日期解析工作(例如,日期/时间分别位于两个列中)
keep_date_col 如果连接多列解析日期,则保持参与连接的列。默认是False
converters 由列号/列名跟函数之间的映射关系组成的字典。例如,{‘foo’:f}会对foo列的所有值应用函数f
dayfirst 当解析有歧义的日期时,将其看做国际格式。
date_parser 用于解析日期的函数
nrows 需要读取的行数
iterator 放回一个TextParser以便逐块读取文件
chunksize 文件快的大小(用于迭代)
skip_footer 需要忽略的行数(从文件末尾处算)
verbose 打印各种解析器输出信息
encoding 用于unicode的文本编码格式,“utf-8”表示用utf-8编码的文本
squeeze 如果数据经解析后仅含一列,则放回Series
thousands 千分位分隔符

数据规整化:清理、转换、合并、重塑

pandas对象中的数据可以通过一些内置的方法进行合并

  • pandas.merge可根据一个或多个键将不同DataFrame中的行连接起来。sql或其他关系型数据库的用户对此应该会比较熟悉,因为它实现的就是数据库的连接操作
  • pandas.concat可以沿着一条轴将多个对象堆叠到一起
  • 实例方法combine_first可以将重复数据编接在一起,用一个对象中的值填充灵一个对象中的缺失值

merge函数的参数

参数 说明
left 参与合并的左侧Dataframe
right 参与合并的右侧Dataframe
how inner、outer、left、right其中一个。默认为inner
on 用于连接的列名。必须存在于左右两个Dataframe对象中。如果未指定,其他连接键也未指定,则以left和right列名的交集座位连接键
left_on 左侧DataFrame重用作连接键的列
right_on 右侧DataFrame中用作连接键的列
left_index 将左侧的行索引用作其连接键
right_index 同上
sort 根据连接键对合并后的数据进行排序,默认为True。有时在处理大数据集时,禁用该选项可获得更好的性能
suffixes 字符串值元组,用于追加到重叠列名的末尾,默认为(’_x’,’_y’)。例如,如果左右两个DataFrame对象都有“data”,则结果中就会出现“data_x”和“data_y"
copy 设置为False,可以在某些特殊情况下避免将数据复制到结果数据结构中。默认总是复制

轴向连接

另一种数据合并运算也被称作连接、绑定或堆叠

  • 如果各对象其他轴上的索引不同,那些轴应该是做并集还是交集
  • 结果对象中的分组需要各不相同吗?
  • 用于连接的轴重要吗?

concat函数的参数

参数 说明
objs 参与连接的pandas对象的列表或字典。唯一必须的参数
axis 指明连接的轴向,默认为0
join “inner”,“outer"其中之一。默认为"outer”.知名其他轴向上的索引是按交集(inner)还是并集(outer)进行合并
join_axes 指明用于其他n-1条轴的索引,不执行并集/交集运算
keys 与连接对象有关的值,用于形成连接轴向上的层次化索引。可以是任意值得列表或数组、元组数组、数组列表(如果将levels设置成多级数组的话)
levels 指定用作层次化索引各级别上的索引,如果设置了keys的话
names 用于创建分层级别的名称,如果设置了keys和levels的话
verify_integrity 检查结果对象新轴上的重复情况,如果发现则引发异常。默认允许重复
ignore_index 不保留连接轴上的索引,产生一组新索引

重塑和轴向旋转

重塑层次化索引

  • stack:将数据的列"旋转"为列
  • unstack:将数据的行"旋转"为列

数据转换

  • duplicates
  • drop_duplicates

利用函数或映射进行数据转换

字符串操作

python内置的字符串方法

方法 说明
count 返回子串在字符串中的出现次数(非重叠)
endswith,startswith 如果字符串以某个后缀结果,则返回True
join 将字符串用作连接其他字符串序列的分隔符
index 如果在字符串中找到子串,则放回子串第一个字符所在的位置。如果没有找到,则引发valueError
find 如果在字符串中找到子串,则返回第一个发现的子串的第一个字符所在的位置。如果没有找到,则返回-1
rfind 如果在字符串中找到子串,则返回最后一个发现的子串的第一个字符所在的位置。如果没有找到,则返回-1
replace 用另一个字符替换指定子串
strip、rstrip、lstrip 去除空白符。相当于对各个元素执行x.strip()
split 通过指定的分隔符将字符串拆分为一组子串
lower、upper 分布将字母字符转换为小写或大写
ljust、rjust 用空格填充字符串的空白侧以返回符合最低宽度的字符串

matplotlib的用法

Series.plot方法的参数

参数 说明
label 用于图例的标签
ax 要在其上进行绘制的matplotlib subplot对象,如果没有设置,则使用当前matplotlib subplot
stype 将要传给matplotlib的风格字符串’ko–’
alpha 图表的填充不透明度
kind 可以是line,bar,barh,kde
use_index 将对象的索引用作刻度标签
rot 旋转刻度标签(0到360)
xticks 用作x轴刻度的值
yticks 用作y轴刻度的值
xlim x轴的界限(例如[0,10])
ylim y轴的界限
grid 显示轴网格线
subplots 将各个DataFrame列绘制到单独的subplot中
sharex 如果subplots=True,则共用同一个X轴,包括刻度和界限
sharey 如果subplots=True,则共用同一个Y轴
figsize 表示图像大小的元组
title 表示图像标题的字符串
legend 添加一个subplot突破
sort_columns 以字母表顺序绘制各列,默认使用当前列顺序

kind=’bar‘(垂直柱状图)或kind=‘barh’(水平柱状图)

你可能感兴趣的:(python)