python中的Pandas库和Numpy库

Pandas

1.DataFrame.apply() 函数则会遍历每一个元素,对元素运行指定的 function。

例如:DataFrame.apply(np.abs,axis = 0)   素:指的是对Dataframe进行取绝对值的function,并指定了行。

默认情况下 axis=0 表示按行,axis=1 表示按列。

2.inplace参数的理解:

         修改一个对象时:

               inplace=True:不创建新的对象,直接对原始对象进行修改;

               inplace=False:对数据进行修改,创建并返回新的对象承载其修改结果。

pd.Series(data,index,dtype,copy) : 参数描述具体同下

pd.DataFrame() : 创建一个空DataFrame

df.loc['牛逼'] :df指的是DataFrame

df.iloc[]函数,检索dataframe中数据,逗号前面是行,后面是列

   iloc[-1] : 负数含义为检索倒数最后一行

   iloc[:,:] :  检索所有行列

   iloc[1:,:] :  除了第一行,检索余下行列

df = df.drop([0,1]) : 删除DataFrame中第一行和第二行。

df = df.drop("标签") : 删除 DataFrame 中 标签 那行

df.head(n) : 获取前n条数据

df.tail(n) : 获取后n条数据   两者标签都会保留

df.T : 转置df

df.shape : 获取df德数据维度

df.size :  获取df的元素个数

df.Reindex(index=[0,2] ,column = ["A","C"]) : 向df中获取1和三行的A、C特征,重建一个新的df。

pandas排序

df.sort_index() : 对索引列进行从小到大进行排列

df.sort_values(by = 'col1') : 对数据标签col1的值从小到大进行排序

pandas 缺失数据处理

df.isnull() : 检查df中缺失值

df.notnull() : 检查df中的非缺失值  两者结果以布尔值表示。

df.fillna(0) : 用标量0代替缺失值NaN

df.fillna(method = "pad"):向前填充处理  缺失值用(pad)前一个数据去代替

df.dropna() : 删除缺失值

pandas 分组统计

df.groupby("A") :按A特征标签进行分组

df.groupby("A").get_group(2014) : 选择一个A特征元素值为2014的分组

对指定的数据集进行数据标准化处理:如下图操作

df.filter(lambda x: len(x)>=3) : 过滤掉同元素个数小于3个的元组

pandas 多表合并 (主要是Merge合并函数,需要根据实际运用参数)

“how”参数情况

  1.     how= 'left' :此时两表合并,以左边表为基础,不改变行数,连接右表,右表没有的数据读为空值NaN,右表多出的行直接剔除。

  2.    how= 'right' :与上相反

  3.   how =  ‘outer’:内连接 效果如下

  4.   how =  ‘outer’:内连接 效果如下

DataFrame.drop_duplicates(subset=None, keep='first', inplace=False, ignore_index=False)  #删除重复值

从示例之中可以看到drop_duplicates()方法是通过Dataframe类型的对象来调用的,而该方法可以去接收的参数有四个,其中参数subset为必选参数。它表示操作的列是哪一个,不写的话默认就是删除列所有值。

参数keep需要接收first、last以及False三个值,含义分别为保留第一个重复项、最后一个重复项以及删除所有重复项、默认值为first。

参数inplace的值也是布尔类型的True和False,意思为是否直接对原本的Dataframe对象操作,False就是不会修改原对象。

最后一个参数gnore_index的默认值为True,意思就是重置索引,会按照顺序为剩余的列指定索引值。

当数据过大时:

pd.set_option('display.max_columns', None) :使得df数据展示全部列

pd.set_option('display.max_rows', None):使得df数据展示全部行

numpy库

数组的创建

np.arrange() : 创建数组  (常见)

np.empty([2,3],dtype=int) :创建2行三列的空数组 数据类型为int

np.zeros([2,3],dtype=int) :创建2行三列的空数组 数据类型为int (与empty同理)

nadarry 指的是numpy建立数组的数组名,可以自定义。

nadarray.size  得到数组元素的总个数 相当与m*n的大小

#改变数组形状

nadarray.shape  数组的维度 例如矩阵 m行n列

nadarray.reshape(n,m) 改变数组的维度 成为n行m列(在处理数据中常用,方便进行运算)矩阵倒置 

nadarray.reval()    拆解,将多维数组变成一维数组。

nadarray.flatten()  拉直,其功能与 ravel() 相同,但是 flatten() 返回的是真实的数组,需要分配新的内存空间,而 ravel() 仅仅是改变视图。

np.concatenate((a,b)) = np.hstack((a,b)) : 沿行轴连接a,b两个数组(水平堆叠)  

np.concatenate((a,b),axis=1) = np.vstack((a,b)) : 沿列轴连接a,b两个数组(竖直堆叠)   axis=0 指的是纵向  ,axis = 1指的是横向   vertical 简称v 垂直

对nadarray的切片操作

nadarray切片例子:

  1. In: a=np.array([[1,2,3],[4,3,2]])

  2. In: a[1][0]

  3. Out:array([4])

  4. In:a[1,:2] #获取第1维的前2个元素

  5. Out:array([4, 3])

数组的运算 

np.pi  np.sin() np.cos() np.tan() np.arctan() ~

np.around(a,2):  对a进行四舍五入,且保留两位小数

np.around(a,-1):  对a进行四舍五入,向十位四舍五入

np.power(a,b) : 以a为底数,求a的b次幂

np.mod( ) : 求余数

numpy的统计函数

numpy的排序函数

np.abs(a) np.fabs(a) : 取各元素的绝对值 

np.sqrt(a) : 计算各元素的平方根 

np.square(a): 计算各元素的平方 

np.log(a) np.log10(a) np.log2(a) : 计算各元素的自然对数、10、2为底的对数 

np.ceil(a) np.floor(a) : 计算各元素的ceiling 值, floor值(ceiling向上取整,floor向下取整) 

np.rint(a) : 各元素 四舍五入 

np.modf(a) : 将数组各元素的小数和整数部分以两个独立数组形式返回 

np.exp(a) : 计算各元素的指数值 

np.sign(a) : 计算各元素的符号值 1(+),0 ,-1(-) 

np.std() 求标准差的时候默认是除以 n 的,即是有偏的,np.std无偏样本标准差方式为加入参数 ddof = 1;

np.maximum(a, b) np.fmax() : 比较(或者计算)元素级的最大值 

np.minimum(a, b) np.fmin() : 取最小值 

np.mod(a, b) : 元素级的模运算 

np.copysign(a, b) : 将b中各元素的符号赋值给数组a的对应元素

np.T :可理解为矩阵的转置

key:

矩阵可逆的充要条件是矩阵满秩。

  1. import numpy as np

  2. import numpy.linalg as lg

  3. a = np.array([[1,2,3],[4,5,6],[7,8,9]])

  4. In:lg.inv(a)

  5. Out:array([[ 3.15251974e+15, -6.30503948e+15, 3.15251974e+15],

  6. [ -6.30503948e+15, 1.26100790e+16, -6.30503948e+15],

  7. [ 3.15251974e+15, -6.30503948e+15, 3.15251974e+15]])

  8. #当a满秩具有可逆前提时,out即为a的逆矩阵 

Matplotlib可视化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值