Pandas数据操作

(1)nunique():判断表格中某一列是否存在NA值;
(2)head():输出表格中的前几行;
(3)shape:判断表格有几行和几列;
(4)info():判断表格中每一列的数据类型;
(5)groupby():依据表格中的某一个特征对表格进行划分;
(6)egg():一般和groupby一起使用,用于对某一列进行操作或某一行进行操作;
(7)reset_index():当某一列作为索引时,保留其作为表格数据;
(8)set_index():将某一列作为表格索引,并根据其参数drop确定是否保留为表格内容;
(9)rename():对表格中的某一列名称进行修改;
(10)merge():对两个表格进行拼接;
(11)fillna():对表格中为NA的数据进行填充;
(12)clip():对表格中的数据范围进行限定;
(13)to_csv():将表格保存为CSV文件;
(14)dtype():查看数据的类型;
(15)astype():对数据的类型进行转换;
(16)pivot_table(index,values,columns, aggfunc, fill_value).reset_index():pivot_table的作用类似于groupby,但是更加灵活,可以做更多的处理。

  • pivot_table中的参数是以index作为划分准则,以values的特征作为被划分元素,如果没有aggfunc参数,则默认是对values的划分值进行取平均操作,当使用aggfunc=np.sum之后,则是进行求和操作。
  • columns的作用是以columns对应的特征对values的值进行列划分,之前的index是对values进行行划分。
  • fill_value的作用是对NA值进行填充。
  • reset_index()的作用是当index的特征作为索引是是否保留。

通过具体例子进行理解:

# 对商品销售的日销售额基于商品id进行划分
sales_by_item_id = sales_train.pivot_table(index=['item_id'],values=['item_cnt_day'])
sales_by_item_id

代码以item_id对item_cnt_day进行划分,重复值对进行累加取平均;输出结果如下图所示:
在这里插入图片描述

sales_by_item_id = sales_train.pivot_table(index=['item_id'],values=['item_cnt_day']).reset_index()
sales_by_item_id

这段代码相比于上段代码多了最后一部分的reset_index(),这样inem_id就可以保留在表格中,具体输出如下所示。
在这里插入图片描述

sales_by_item_id = sales_train.pivot_table(index=['item_id'],values=['item_cnt_day'],columns='date_block_num').reset_index()
sales_by_item_id

这段代码不仅使用item_id对item_cnt_day进行划分,同时使用columns=‘date_block_num’)对int_cnt_day进行划分,这样得到的结果如下表所示:
在这里插入图片描述
这样得到的表格中有很多的NaN值,因此我们使用参数fill_value对NaN数据进行填充。填充结果如下:

sales_by_item_id = sales_train.pivot_table(index=['item_id'],values=['item_cnt_day'], 
                                        columns='date_block_num', aggfunc=np.sum, fill_value=0).reset_index()
sales_by_item_id

在这里插入图片描述
这样得到的图表中,第一列是索引id,表示一共有几个数据,这里显示是21806个数据;第二列是item_id的不同的特征的个数,用于对item_cnt_day进行划分;第一行是data_block_num,其中对应的数据个数就是data_block_num的特征个数,这里是和item_id一起对item_cnt_day进行划分。
(17)columns:返回表格中列的头名,也就是列的名称;
(18)loc()和iloc():loc是根据index来索引,比如下边的df定义了一个index,那么loc就根据这个index来索引对应的行。iloc并不是根据index来索引,而是根据行号来索引,行号从0开始,逐次加1。
在这里插入图片描述
(19)isin():判断一个表格中的值是否在另一个表格中,如果存在返回True;
(20)duplicated():判断表格中是否有重复值;
(21)dropna():删除表格中的缺失值;
(22)sort_values():对表格中的某一列进行排序;
(23)unique():找到列表中某一列的不同值,并返回一个列表,而nunique()是返回一个表格中某一列不同值的个数;
(24)replace():把字符串中的 old(旧字符串) 替换成 new(新字符串);
(25)product():product 用于求多个可迭代对象的笛卡尔积(Cartesian Product),它跟嵌套的 for 循环等价.即:product(A, B) 和 ((x,y) for x in A for y in B)一样。比如A有3类,B有3类,那么一共会得到9类。一般使用np.array(list(product(A,B)))使用;
(26)np.vstack:按垂直方向(行顺序)堆叠数组构成一个新的数组;
在这里插入图片描述
(27)np.hstack:按水平方向(列顺序)堆叠数组构成一个新的数组;
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值