利用python进行数据分析(笔记)
其他
2020-03-02 11:30:01
阅读次数: 0
《利用python进行数据分析(第二版)》笔记
numpy使用
函数 |
说明 |
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 |
分别返回一个表示“哪些元素是有穷的(非ing,非NaN)”或“哪些元素是无穷的”的布尔型数组 |
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,计算A^B |
maximum/fmax |
元素级的最大值计算。fmax将忽略NaN |
minimum/fmin |
元素级的最小值计算。fmin将忽略NaN |
mod |
元素级的求模计算(除法的余数) |
copysign |
将第二个数组中的值得符号复制给第一个数组中的值 |
greater/greater_equal/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) |
集合的对称差,即存在于一个数组中但不同时存在于两个数组中的元素 |
函数 |
说明 |
diag |
以一维数组的形式返回方阵的对角线(或非对角线)元素,或将一维数组转换为方阵(非对角线元素为0) |
dot |
矩阵乘法 |
trace |
计算对角线元素的和 |
det |
计算矩阵行列式 |
eig |
计算方阵的本征值和本征向量 |
inv |
计算方阵的逆 |
pinv |
计算矩阵的Moore-Penrose伪逆 |
qr |
计算QR分解 |
svd |
计算奇异值分解(SVD) |
solve |
解线性方程组Ax = b,其中A为一个方阵 |
lstsq |
计算Ax = b的最小二乘解 |
函数 |
说明 |
seend |
确定随机数生成器的种子 |
permutation |
返回一个序列的随机排列或返回一个随机排列的范围 |
shuffle |
返回一个序列就地随机排列 |
rand |
产生均匀分布的样本值 |
randint |
从给定的上下限范围内随机选取整数 |
randn |
产生正态分布(平均值为0,标准差为1)的样本值 |
binomial |
产生二项分布的样本值 |
normal |
产生正态(高斯)分布的样本值 |
beta |
产生Beta分布的样本值 |
chisquare |
产生卡方分布的样本值 |
gamma |
产生Gamma分布的样本值 |
uniform |
产生[0,1)均匀分布的样本值 |
Pandas使用
类型 |
说明 |
二维ndarray |
数据矩阵,还可以传入行标和列标 |
由数组、列表或元组组成的字典 |
每个序列会变成DataFrame的一列 |
NumPy的结构化/记录数组 |
类似于“由数组组成的字典” |
由Series组成的字典 |
每个Series会成为一列。如果没有显式指定索引,则各Series的索引会被合并成结果的行索引 |
由字典组成的字典 |
各内层字典会成为一列。键会被合并成结果的行索引,跟“由Series组成的字典”的情况一样 |
字典或Series的列表 |
各项将会成为DataFrame的一行。字典键或Series索引的并集将会成为DataFrame的列标 |
由列表或元组组成的列表 |
类似于“二维ndarray” |
另一个DataFrame |
该DataFrame的索引将会被沿用,除非显式指定了其他索引 |
NumPy的MaskerArray |
类似于“二维ndarray”的情况,只是掩码值在结果DataFrame会变成NA/缺失值 |
方法 |
说明 |
append |
连接另一个Index对象,产生一个新的Index |
difference |
计算差集,并得到一个Index |
intersection |
计算交集 |
union |
计算并集 |
isin |
计算一个指示各值是否都包含在参数合中的布尔型数组 |
delete |
删除索引i处的元素,并得到新的Index |
drop |
删除传入的值,并得到新的Index |
insert |
将元素插入到索引i处,并得到新的Index |
is_monotonic |
当各元素均大于等于前一个元素时,返回True |
is_unique |
当Index没有重复值时,返回True |
unique |
计算Index中唯一值得数组 |
参数 |
说明 |
index |
用作索引的新序列。既可以是Index实例,也可以是其他序列型的Python数据结构。Index会被完全使用,就像没有任何复制一样 |
method |
插值(填充)方式 |
fill_value |
在重新索引的过程中,需要引入缺失值时使用的替代值 |
limit |
前向或后向填充时的最大填充量 |
tolerance |
向前后向后填充时,填充不准确匹配项的最大间距(绝对值距离) |
level |
在MultiIndex的指定级别上匹配简单索引,否则选取其子集 |
copy |
默认为True,无论如何都复制,如果为False,则新旧相等就不复制 |
类型 |
说明 |
df[val] |
从DataFrame选取单列或一组列:在特殊情况下比较便利:布尔型数组(过滤行)、切片(行切片)、或布尔型DataFrame(根据条件设置值) |
df.loc[val] |
通过标签,选取DataFram的单个行或一组行 |
df.loc[:, val] |
通过标签,选取单列或子集 |
df.loc[val1, val2] |
通过标签,同时选取行和列 |
df.iloc[where] |
通过整数位置,从DataFrame选取单个行或行子集 |
df.iloc[where_i, where_j] |
通过整数位置,同时选取行和列 |
df.at[label_i, label_j] |
通过行或列标签,选取单一的标量 |
df.iat[i, j] |
通过行和列的位置(整数),选取单一的标量 |
reindex |
通标签选取行或列 |
get_value, set_value |
通过行和列标签选取单一值 |
方法 |
说明 |
average |
默认:在相等分组中,为各个值分配平均排名 |
min |
使用整个分组的最小排名 |
max |
使用整个分组的最大排名 |
first |
按值在原始数据中的出现顺序分配排名 |
dense |
类似于min方法,但是排名总是在组间增加1,而不是组中相同的元素数 |
选项 |
说明 |
axis |
约简的轴。DataFrame的行用0, 列用1 |
skipna |
排除缺失值,默认值为True |
level |
如果轴是层次化索引的(即MultiIndex),则根据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 |
计算百分数变化 |
数据加载
函数 |
说明 |
read_csv |
从文件、URL、文件型对象中加载带分隔符的数据。默认分隔符为逗号 |
read_table |
从文件、URL、文件型对象中加载带分隔符的数据。默认分隔符为制表符(’\t’) |
read_fwf |
读取定宽格式数据(就是没有分隔符) |
read_clipboard |
读取剪贴板中的数据,可以看做read_table的剪贴板版。再将网页转换成表格时很有用 |
read_excel |
从Excel XLS 或XLSX file 读取表格数据 |
read_hdf |
读取pandas写的HDF5文件 |
read_html |
读取HTML文档中的所有表格 |
read_json |
读取JSON(JavaScript Object Notation)字符串中的数据 |
read_msgpack |
二进制格式编码的pandas数据 |
read_pickkle |
读取Python pickle格式中存储的任意对象 |
read_sas |
读取存储于SAS系统自定义存储格式的SAS数据集 |
read_sql |
读取SQL查询结果为pandas的DataFrame |
read_stata |
读取Stat文件格式的数据集 |
read_feather |
读取Feather二进制文件格式 |
参数 |
说明 |
path |
表示文件系统位置、URL、文件型对象的字符串 |
sep或delimiter |
用于对行中各字段进行拆分的字符序列或正则表达式 |
header |
用作列名的行号。默认为0(第一行),如果没有header行就应该设置为None |
index_col |
用作行索引的列编号或列名。可以是单个名称/数字或由多个名称/数字组成的列表(层次化索引) |
names |
用于结果的列名列表,结合header=None |
skiprows |
需要忽略的行数,或需要跳过的行号列表(从0开始) |
na_values |
一组用户替换NA的值 |
comment |
用于将注释信息从行尾拆分出去的字符(一个或多个) |
parse_dates |
尝试将数据解析为日期,默认为False。如果为True,则尝试解析所有列。此外,还可以指定需要解析的一组列号或列名。如果列表的元素为列表或元组,就会将多个列组合到一起再进行日期解析工作 |
keep_date_col |
如果连接多列解析日期,则保持参与连接的列。默认为False |
converters |
由列号/列名跟函数之间的映射关系组成的字典。例如,{‘foo’:f}会对foo列的所有值应用函数f |
dayfirst |
当解析有歧义的日期时,将其看做国际格式(例如,7/6/2012 -> June 7,2012)。默认为False |
date_parse |
用作解析日期的函数 |
nrows |
需要读取的行数(从文件开始处算起) |
iterator |
返回一个TextParser以便逐块读取文件 |
chunksize |
文件块的大小(用于迭代) |
skip_footer |
需要忽略的行数(从文件末尾处算起) |
verbose |
打印各种解析器输出信息,比如“非数值列中缺失值的数量”等 |
encoding |
用于unicode的文本编码格式。例如,“utf-8”表示用UTF-8编码的文本 |
squeeze |
如果数据经解析吼仅含一列,则返回Series |
thousands |
千分位分隔符,如“,”或“.” |
参数 |
说明 |
delimiter |
用于分隔字段的单字符串。默认为“,” |
lineterminator |
用于写操作的行结束符,默认为“\r\n”。读操作将忽略此选项,它能认出跨平台的行结束符 |
quotechar |
用于带有特殊字符(如分隔符)的字段的引用符号。默认为“"” |
quoting |
引用约定。可选值包括csv.QUOTE_ALL(引用所有字段)、csv.QUOTE_MINIMAL(只引用带有诸如分隔符之类特殊字符的字段)、csv.QUOTE_MNNUMERIC以及csv.QUOTE_NON(不引用)。默认是QUOTE_MINIMAL |
skipinitialspace |
忽略分隔符后面的空白符。默认为False |
doublequote |
如果为True,则双写。 |
escapechar |
用于对分隔符进行转义的字符串。(如果quoting被设置为csv.QUOTE_NONE的话)。默认禁用 |
空值处理
方法 |
说明 |
dropna |
根据各标签的值中是否存在缺失数据对轴标签进行过滤,可通过阈值调节对缺失值的容忍度 |
fillna |
用指定值或插值方法(如ffill或bfill)填充缺失数据 |
isnull |
返回一个含有布尔值的对象,这些布尔值表示哪些值是缺失值/NA,该对象的类型与源类型一样 |
notnull |
isnull的否定式 |
参数 |
说明 |
value |
用于填充缺失值的标量值或字典对象 |
method |
插值方式。如果函数调用时未指定其他参数额话,默认为“ffill” |
axis |
待填充的轴,默认axis=0 |
inplace |
修改调用者对象而不产生副本 |
limit |
(对于前向和后向填充)可以连续填充的最大数量 |
方法 |
说明 |
count |
返回子串在字符串中的出现次数(非重叠) |
endswith、startswith |
如果字符串以某个后缀结尾(以某个前缀开头),则返回True |
join |
将字符串用作连接其他字符串序列的分隔符 |
index |
如果在字符串中找到子串,则返回子串第一个字符所在的位置。如果没有找到,则引发ValueError。 |
find |
如果在字符串中找到子串,则返回第一个发现的子串的第一个字符所在的位置。如果没有找到,则返回-1 |
rfind |
如果在字符串中找到子串,则返回最后一个发现的子串的第一个字符所在的位置。如果没有找到,则返回-1 |
replace |
用另一个字符串替换指定子串 |
strip/rstrip/lstrip |
去除空白符(包括换行符)。相当于对各个元素执行x.strip()(以及rstrip/lstrip)。 |
split |
通过指定的分隔符将字符串拆分为一组子串 |
lower/upper |
分别将字母字符转换为小写或大写 |
ljust/rjust |
用空格(或其他字符)填充字符串的空白侧以返回符合最低宽度的字符串 |
方法 |
说明 |
cat |
实现元素级的字符串连接操作,可指定分隔符 |
count |
返回表示某个字符串是否含有指定模式的布尔型数组 |
extract |
使用带分组的正则表达式从字符串Series提取一个或多个字符串,结果是一个DataFrame,每组有一列 |
endswith |
相当于对每个元素执行x.endswith(pattern) |
startswith |
相当于对每个元素执行x.startswith(pattern) |
findall |
计算各字符串的模式列表 |
get |
获取各元素的第i个字符 |
isalnum |
相当于内置的str.alnum |
isalpha |
相当于内置的str.isalpha |
isdecimal |
相当于内置的str.isdecimal |
isdigit |
相当于内置的str.isdigit |
islower |
相当于内置的str.islower |
isnumeric |
相当于内置的str.isnumeris |
isupper |
相当于内置的str.isupper |
join |
根据指定的分隔符将Series中各元素的字符串连接起来 |
len |
计算各字符串的长度 |
lower,upper |
转换大小写。相当于对于各个元素执行x.lower()或x.upper() |
match |
根据指定的正则表达式对各个元素执行re.match,返回匹配的组为列表 |
pad |
在字符串的左边、右边或两边添加空白符 |
center |
相当于pad(side=‘both’) |
repeat |
重复值。例如,s.str.repeat(3)相当于对各个字符串执行x*3 |
replace |
用指定字符串替换找到的模式 |
slice |
对Series中的各个字符串进行子串截取 |
split |
根据分隔符或正则表达式对字符串进行拆分 |
strip |
去除两边的空白符,包括新行 |
rstrip |
去除右边的空白符 |
lstrip |
去除左边的空白符 |
数据规整
参数 |
说明 |
left |
参与合并的左侧DataFarame |
right |
参与合并的右侧DataFrame |
how |
“inner”、“outer”、“left”、“right”其中之一。默认为“inner” |
on |
用于连接的列名。必须存在于左右两个DataFrame对象中。如果未指定,且其他连接键也未指定,则以left和right列名的交集作为连接键 |
left_on |
左侧DataFrame中用作连接键的列 |
right_on |
右侧DataFrame中用作连接键的列 |
sort |
根据连接键对合并后的数据进行排序,默认为True。有时在处理大数据集时,禁用该选项可获得更好的性能 |
suffixes |
字符串值元组,用于追加到重叠列名的末尾,默认为(’_x’, ‘_y’)。例如,如果左右两个DataFrame对象都有“data”,则结果中就会出现“data_x”和“data_y” |
copy |
设置为False,可以在某些特殊情况下将数据复制到结果数据结构中。默认总是复制。 |
选项 |
说明 |
inner |
使用两个表都有的键 |
left |
使用左表中所有的键 |
right |
使用右表中所有的键 |
outer |
使用两个表中所有的键 |
参数 |
说明 |
objs |
参与连接的pandas对象的列表或字典。唯一必须的参数 |
axis |
指明连接的轴向,默认是0 |
join |
“inner”、“outer”其中之一,默认为“outer”。指明其他轴向上的索引是按交集(inner)还是并集(outer)进行合并 |
join_axes |
指明用于其他n-1条轴的索引,不执行并集/交集运算 |
keys |
与连接对象有关的值,用于形成连接轴向上的层次化索引。可以是任意值的列表或数组、元组数据、数组列表(如果将levels设置成多级数组的话) |
levels |
指定用作层次化索引各级别上的索引,如果设置了keys的话 |
names |
用于创建分层级别的名称,如果设置了keys和(或)levels的话 |
verify_integrity |
检查结果对象新轴上的重复情况,如果发现则引发异常。默认(False)允许重复 |
ignore_index |
不保留连接轴上的索引,产生一组新索引range(total_length) |
发布了38 篇原创文章 ·
获赞 15 ·
访问量 5万+
转载自blog.csdn.net/u013057271/article/details/104483083