Numpy、Pandas使用大全与各参数详解

目录

一、numpy

1、属性、方法与操作

(1)属性

(2)方法

(3)操作

2、文件读取与保存

(1)文件读取

(2)文件保存

3、矩阵生成

二、Pandas

扫描二维码关注公众号,回复: 16703226 查看本文章

1、属性与方法

(1)属性

(2)方法

2、数据选取

(1)取行

(2)取列

3、数据处理

(1)数据缺失值

(2)空值处理

(3)数据重复处理

(4)数据合并

(5)数据排序

(6)数据分组

4、数据导入与读取

(1)数据库导入

(2)文件读取

5、文件导出

6、数据转换

7、可视化matplotlib函数


一、numpy

1、属性、方法与操作

数据类型:ndarray

(1)属性

.ndim:矩阵维度

.shape:矩阵的形状

.size:矩阵中元素的个数

.dtype:元素数据类型

.T:矩阵的转置

(2)方法

reshape(shape):返回新的数组

resize(shape):返回修改原有的数组

sum()、max()、min()、mean():可设置axis按行列计算

tolist():array转变为list

fill(value):填充

(3)操作

array[行索引]:索引

array[起始行:结束行:步长,起始列:结束列:步长]:切片

2、文件读取与保存

(1)文件读取

np.loadtxt(filename,delimiter=,encoding=):文件读取以及参数

dtype:默认以浮点数类型读取

comments:默认忽略掉文件中以#号开头的注释行

delimiter:无默认值,应该指定分隔符如‘,’

usecols:默认取所有列,可以设置读取指定的列如(1,3)指文件的第2和第四列

skiprows:默认0,不跳过头行,可是这跳过开头的n行

maxrows:默认取文件的所有行,可设置读取文件的最大行数,不包括skiprows

(2)文件保存

np.savetxt(filename,array_data,):文件保存以及对应参数

fmt:默认以高精度浮点数保存数据,可以设置如整数‘%d’

delimiter:默认以空格分隔符字段,课设置CSV如‘,’

encoding:默认字符编码模式

3、矩阵生成

np.array(object):生成array数据

np.empty(shape),np.empty_like(a):生成空矩阵

np.zeros(shape), np.zeros_like(a):生成全为0的矩阵

np.ones(shape), np.ones_like(a):生成全为1的矩阵

np.full(shape,value), np.full_like(a,value):生成指定value和类型的矩阵

np.eye(ndim):生成指定维度且对角线为1,其余地方为0的矩阵

np.fromstring():创建一个新的一维数组,该数组从字符串中的文本数据初始化

np.arange(start,end,step):通过arange函数生成一个array对象

np.linspace(first,last,size):可以生成等间距数组

np.concatenate([a,b],axis=0):用来对数列或矩阵进行合并的

np.random.rand(), np.random.randn(), np.random.randint(),np.random.uniform(), np.random.normal(), ...:通过Python的随机函数进行array数据类型创建

np.sum(), np.mean(), np.median(), np.max(), np.min(), np.std(),...聚合函数

二、Pandas

1、属性与方法

(1)属性

.index:获取行索引对象

.values:获取element数组

.shape/.ndim/.size/.dtype:数组/维度/大小/类型

.columns:获取列索引对象

.T:获取转置DataFrame

(2)方法

.get(列名,缺省值):获取列和df[列名]类似,但不会因列名不存在报错

.copy():复制一个新对象

.head(n)/.tail(n):头/尾n行

.max()/.min()/.mean()/.median()... .describe():数据分布与统计

.insert(插入位置,插入列,插入数据):插入一列

.drop(行号)、.drop(列名,axis=1):删除行\列,默认删除行列后生成新的dataframe,如需要在原dataframe上删除可设置参数inplace=True。

del df[列名]:删除列,直接作用在df上

.drop_duplicates(subset=[列名],keep=“first|last”,inplace=False):删除重复项

.unique():唯一值

.set_index(列名):使用某列作为index

.reset_index(drop=True|False,inplace=True|False)

.apply(np.sum):对每列数据执行指定的函数运行

df.apply(function,axis=1):生成新列

.apply_map(function):对每个单元格元素执行指定的运算函数

2、数据选取

(1)取行

按行索引(index)标签取:

df.loc[行标签]:取一行数据导一个Series对象

df.loc[[行标签]]:取一行数据导dataframe对象

df.loc[[行标签1,行标签2,行标签3,...]]:取多行数据到一个dataframe

df.loc[首行标签:末行标签:步长]:行切片

按照行索引(index)位置取

df.iloc[行号]:取一行数据到一个Series对象

df.iloc[[行号]]:取一行数据到一个dataframe对象

df.iloc[[行号1,行号2....]]:取多行数据到一个DataFrame对象

df.iloc[起始行号:结束行号:步长]:行切片

(2)取列

①按列名取:

df[列标签]:取一列数据到一个Series对象

df[[列标签]]:取一列数据到一个dataframe对象

df.loc[[列标签1,列标签2,列标签3,...]]:取多列数据到一个dataframe

df.loc[首列标签:末列标签:步长]:列切片

②按照列索引(index)位置取:

df.iloc[:,列号]:取一列数据到一个Series对象

df.iloc[:,[列号]]:取一列数据到一个dataframe对象

df.iloc[:,[列号1,列号2....]]:取多列数据到一个DataFrame对象

df.iloc[:,起始列号:结束列号:步长]:列切片

③取行列数据:

df.loc[[行标签1,行标签2...],[列标签1,列标签2,...]]:df.loc[按行标签取,按列标签取]

df.loc[首行标签:末行标签:步长, 首列标签:末列标签:步长]:切片

df.iloc[[行号1,行号2,...], [列号1,列号2,...]]:df.iloc[按行位置取,按列位置取]

df.iloc[起始行号:结束行号:步长, 起始列号:结束列号:步长]:切片

3、数据处理

(1)数据缺失值

np.nan\pd.nat:空值类型

.isna():得到一个元素是否为空的bool矩阵(空值检测)

.notna():得到一个元素是否不为空的bool矩阵(空值检测)

(2)空值处理

①空值填充:

.fillna(填充值):使用填充值去填充空值部分

.fillna(method='ffill'):用上一个值填充空值

.fillna(method='bfill'):用下一个值填充空值

.fillna(method='ffill',axis=1):用左一个值填充空值

.fillna(method='bfill',axis=1):用右一个值填充空值

df["成绩"].fillna(df["成绩"].mean()):用给定值填充空值

②空值清除

.dropna():默认除去包含任意空值的行

.dropna(axis=1):去除包含任意空值的行

.dropna(how='all'):只有一行所有值都为空才去除

.dropna(subset=包含空值的行或列):只判断给定行或列中是否有空值

(3)数据重复处理

.duplicated():生成一个是否重复行的bool数组(数据重复检验)

.drop_duplicates():去除重复项,其中.drop_duplicates(subset=列名)按照列名检测重复项

(4)数据合并

pd.concat([df1,df2],axis=0):行拼接,列集合

pd.concat([df1,df2],axis=1):列拼接,行集合

df1.merge(df2,left_on=左表列名,right_on=右表列名, how='innerleft|right|outer|cross'):默认使用相同的列进行关联,也可以指定两个df的不同名关联列

df1.join(df2,on=列名或列号,how='left|right|inner|outer'):默认使用index进行关联,也可以指定两个df的公共关联列

(5)数据排序

.sort_index():对行索引排序(按index排序)

.sort_index(axis=1):对列索引(列名)排序(按index排序)

.sort_values(by):按by列值排序

.sort_values(by, axis=1):按by行值排序

通用参数:

- ascending:True升序,False降序

- inplace: 是否修改原数据

- na_position: "first"|"last" 缺失值排在最前或最后

(6)数据分组

①使用.groupby()方法分组

df_student.groupby("班级"):单字段分组

df_student.groupby(["班级","性别"]):多字段分组

②使用函数分组

01、行

def set_index_group(index):

    if index % 2 == 0:

        return "偶数行"

    else:
    
        return "奇数行"

df_iris.groupby(set_index_group)

02、列

def set_column_group(column_name):

    if "length" in column_name:

        return "length"

    elif "width" in column_name:

        return "width"

    else:

        return "classfication"

df_iris.groupby(set_column_group,axis=1)

03、GroupBy对象

.groups:得到所有的group

.get_group():得到指定的group

.apply():对group数据执行函数

.agg()|.aggregate():对group进行聚合统计

.max()/.min()/.mean()/.median()/.sum()/......:对group数据统计

4、数据导入与读取

(1)数据库导入

参数1:conn=pymysql.connect(host='localhost',port=3306,user='root',passwd='密码',db='数据库名')

参数:2:conn=sqlite3.connect('mydb.db')

pd.read_sql_query(sql,conn):连接关系数据库执行SQL语句并获取结果集

(2)文件读取

pd.read_csv(file):

参数:

delimiter|sep=',':分隔符

comment='#':注释符

encoding='utf-8':文本编码

header=0:列头行

names=[]:指定列名

index_col=[]:指定列作为行索引

usecols=[]:读取指定列

skiprows=0:跳过数据行数

skipfooter=0:截止数据行数

nrows=0:读取数据行数

parse_dates=False:是否转换日期字符串为日期格式

infer_datetime_format=False:是否自动设置日期格式

pd.read_excel(file):sheet_name=0:指定工作表

pd.read_xml(file_or_buffer):xpath='./*':指定读取XPATH路径

pd.read_html(file_or_buffer):读取HTML页面

pd.read_json():读取JSON字符串或者JSON文件

pd.read_pickle():读取pickle序列化文件

5、文件导出

df.to_csv():将df数据写入分隔符文本文件

df.to_excel():将df数据写入Excel表格文件

df.to_xml():将df数据写入XML文件

df.to_html():将df数据写入HTML文件

df.to_json():将df数据写入JSON文件

df.to_pickle():将df数据写入pickle序列化文件

df.to_dict():转换成字典

6、数据转换

df.to_numpy():转换成Numpy数组

df.to_string():转换成字符串

7、可视化matplotlib函数

df.plot():绘制折线图

df.plot.bar():绘制柱状图

df.plot.barh():绘制横柱图

df.plot.scatter():绘制散点图

df.plot.box():绘制箱型图

df.plot.hist():绘制直方图

df.plot.pie():绘制饼图

猜你喜欢

转载自blog.csdn.net/Sheenky/article/details/131083132