Pandas基础 - 数据处理

本文详细介绍了Pandas中DataFrame的数据处理操作,包括过滤、缺失值判断、增删改查、排序调整、合并重塑、分组运算和聚合运算。通过实例展示了如何使用loc和iloc进行数据切片,以及如何进行条件过滤、缺失值处理、行列增删改以及数据合并等。此外,还讲解了数据排序、分组聚合等高级操作。
部署运行你感兴趣的模型镜像

Pandas的数据处理

  1. np.random.seed(0) #固定随机数 np.random.rand(6,4) #随机生成6行4列 的数
    在这里插入图片描述
  2. df指整个表格,df[: 1] 指选择第一行,df[1:3] 选择多行,指索引1到索引3的2行。
    在这里插入图片描述
  3. df[2::2] 指从df里面选择索引为2开头,步长为2的 所有行。
    在这里插入图片描述
  4. 选择的序列,df[“A”] 指选择A列
    在这里插入图片描述
  5. df[[ ]];表示2维,截取的表格,df[ ] 表示1维,截取的的列。df[[“A”,“B”]] = df.iloc [ :,[“A”,“B”]] 表示截取的多行多列。

在这里插入图片描述
6. df的显示与隐式的切法:loc 表示显示,iloc 表示隐式。df.loc[“a”:“b”,[“A”,“B”]] 表示a到b的行,A,B两列开始切,即切的4个数据。df.iloc[1:3,2:4] 表示从第1个索引到3个索引,切的2行,再从第3列到第5列(左闭右开),切的2列,即C列与D列。
在这里插入图片描述

DataFrame 的过滤

  1. 两种df的过滤对比:df > 0 表示表里每一个元素是否大于0,返回的是布尔值。df[df>0]表示留着大于0的数,Nan表示空值。
    在这里插入图片描述

  2. 对大于0 的数求和,计数,求平均,进行聚合运算。
    在这里插入图片描述

  3. df.loc[“a”] 指找出a 列大于0 的数,返回布尔值。df.loc[:,df.loc[“a”]>0] 指保留"a"列里大于0的所有行,即只要a列有大于0 的数,全都显示。
    ![![在这里插入图片描述](https://img-blog.csdnimg.cn/20201111155515739.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1lpbl9DaHVu,size_16,color_FFFFFF,t_70#pic_center)

  4. df[df[“A”]>0] 表示过滤出 A 列大于0的所有行。
    在这里插入图片描述

  5. 举例:df.loc[(df[‘A’]>0)&(df[‘B’]<0),(df.loc[‘a’])>0&(df.loc[‘b’]<0)]
    第一步:用的显示索引,df.loc[ ,] 切的是表格。
    第二步:df[“A”]&df[“B”] 表示同时满足A列大于0 和 B 列小于0的行。
    第三步:df.loc[‘a’])>0&df.loc[‘b’]<0,表示同时满足a 行大于0 和 b 行小于0的列。

在这里插入图片描述

DataFrame 的缺失值判断

  1. 第一步,需要用到的2个库:numpy and pandas(Series 和 DataFrame)。
    在这里插入图片描述

  2. 第二步,读取数据pd.read_csv +设置索引index= arange(1,100),查看数据是用head()都是否设置成功。
    在这里插入图片描述

  3. 第三步,df.info() 查看数据类型,float 浮点=小数,object 文本 non-null 没有缺失 ,total 5 columns 共5列,int 64位,占用内存:7KB。
    在这里插入图片描述

  4. 第四步,df.mean() 表示对列中的数值型数据求平均,df.describe() 表示对所有数值型数据进行描述性统计。
    std 标准差,25%上四位分数,75%下四位分数。
    在这里插入图片描述

  5. 将a中的列表,改成dataframe 表格形式,如果在之前没有导入datafame,series ,可以用b = pd.Dateframe代替。
    在这里插入图片描述

Series 的增删改查

  1. 用pandas 中的库 导入Series 及DataFrame +设置索引,注意 series() 的前半部分是列表,后半部分是索引。
    在这里插入图片描述
  2. 因为s 是序列,所以能用[ ] 直接导出数据,增加或修改直接改变原数据。

在这里插入图片描述
3. 不能有括号,drop 的是一个 。
在这里插入图片描述

  1. s.pop() 弹出"f" ,直接改变原数据。s.loc[“b”] =5直接将b 设置成5。
    在这里插入图片描述

Dataframe 的增删改查

1.创建DataFrame的表,[[ ]] 表示二维,index 表示索引,要有3个,cloumns 列名要有3个。
在这里插入图片描述

  1. 在原来的t1上面增加显示索引y行=[7,5,4],共4行,3列。
    在这里插入图片描述

  2. 在DataFrame 中删除行用 drop (行)及pop(列)。
    在这里插入图片描述

  3. 增加 t1 的列等于 t1的列名为 k 列 加上 t1 的 列名为一列 的数据总和。
    在这里插入图片描述

  4. t2 = t1 所有行的数值型数据相加,t2 是一条序列,t1 是表格。

在这里插入图片描述

  1. t1 = t1.drop([“A”,“B”],axis = 1, inplace = Ture) 表示删除“A”列与"B"列,inplace 等于true 表示 同意修改原数据。
    在这里插入图片描述

  2. 表示增加一列,一列的列名为seven,t1.sum(axis =1) 表示求每一行的总和,有e,f,g 三行表示有3个值,此时为序列,用[ ] 表列装进去组成了一列并加了列名。
    在这里插入图片描述

  3. 表示t1.sum() 和t1.sum(axis = 0) 效果一样 都是求每列之和。
    在这里插入图片描述

Dataframe 的排序及调整

  1. df[“A”].sort_values() 对df的A列进行值的排序(正序)。
    在这里插入图片描述

  2. df_copy.sort_index 指将df_copy 进行排序,里面的参数有self, axis, ascending, inplace, kind, na_position, ignore_index。axis = 1 是选择行,axis = 0 选择列。ascending 是升序,ascending = True 是降序的意思。
    在这里插入图片描述

  3. df_copy.sort_values(by = “A”, ascending = False ) 。by指通过哪列进行排序,ascending/asc(sql) 按照什么 顺序进行排序。
    ![](https://img-blog.csdnimg.cn/20201110212311463.png#pic_center

  4. df1.set_index 重置索引(), [“A”,“B”,“C”,“D”] 表示重置行的索引。reset_index(drop = False)保留原索引,加上新索引,当drop = True 时,删除原索引,保留新索引。
    在这里插入图片描述

  5. df.var() df.std() df.sum() df. describe() 描述统计 。

在这里插入图片描述

  1. pandas 中DataFrame 数据的填补,空值用np.nan ,nan只能用小写,用大写Nan会报错。其次a 一定要是二维的数据{{ }},[[ ]] , (( )) 。
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20201110213139842.png#pic_center
  2. DataFrame 中提取单列或连继几列一定要加显示或者隐式索引。不加索引就要用[ ]显示二维。
    在这里插入图片描述
    在这里插入图片描述
  3. DataFrame 中提取[“一”]列,loc提取序列,当 a= data.loc[:,“一”:“三”] 提取的是表格,因为有多列,而 [ ] 始终提取的是表格。
    在这里插入图片描述
  4. 删除原数据的某一列,要用drop( 列名,axis = 1),删除那一行用drop(行名,axis = 0)
    在这里插入图片描述
    在这里插入图片描述

Dataframe 的合并及重塑

  1. 原始数据df2
    在这里插入图片描述
  2. reindex(range(1,4)) 从1-4,可以自由定义
  3. reset_index(drop = true) 从0-N 不能自由定义
    在这里插入图片描述
  4. 全连接,表示以上下连接所有并集,没有的用Nan补充。
    在这里插入图片描述
  5. 全连接,表示以左右连接所有并集,没有的用Nan补充 。
    在这里插入图片描述
  6. 所有a = pd.concat([df1,df2],axis = 1,join = “outer”) 用的比较广。
    在这里插入图片描述
  7. a = pd.concat([df1,df2],axis = 1,join = “inner”) 表示用内连接的方式增加列,没有的用Nan补充。
    在这里插入图片描述
  8. merge中两张表没有相同的列名,会报错,一对多表,可以使用这张表。
    在这里插入图片描述
  9. concat ([表1,表2 ],选择0轴或者1轴进行拼接,一般以左连接或者内连接较多。在这里插入图片描述
    10.pd的转轴:stack(列转行),unstack(行转列),pivot(转轴)一般很少用。

Dataframe 的分组运算

  1. 分组:split- apply - combine (key/分组变量 - 运用函数 - 结果聚合)
    在这里插入图片描述
  2. 通过多种方式汇总。
    在这里插入图片描述
  3. 查看通过种类分类的数量进行降序排列。
    在这里插入图片描述
  4. 这种列X列的方式,在sql 中直接用* as 命名,在Dax表达式中跟这个很相似,直接用[ ]表示某列。
    在这里插入图片描述

Dataframe 的聚合运算

  1. 原理:把0行和3行传给了湖南,将1行和2行传给了江西,所以data.groupby(mapping) 对江西湖南的数值求和。

在这里插入图片描述
2. agg 聚,自动的意思,经常与groupby连用。agg()里面放的np中的聚合函数。
在这里插入图片描述
3. 1)自定义ptp 函数,return 返回最大减去最小值。然后通过种类分类。
在这里插入图片描述
2)lambda 返回所有列数据的最大减去所有列数据最小值,得到所有列数据,然后通过种类分类。
在这里插入图片描述
4. 找出所需要的列,通过种类分类,将价格的方差transform 到这个表里。
在这里插入图片描述
5. data.pivot_table(index = [“种类”]) #先种类分组,再平均
在这里插入图片描述6. data.pivot_table(index=[ “种类”,"产地].aggfunc = np.sum) #先种类分组,再平均
在这里插入图片描述
7. pd.crosstab(data[“种类”],data[“产地”]) 指分类分组频数,常用
在这里插入图片描述
PS:
撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G
查找:Ctrl/Command + F
替换:Ctrl/Command + G

您可能感兴趣的与本文相关的镜像

Seed-Coder-8B-Base

Seed-Coder-8B-Base

文本生成
Seed-Coder

Seed-Coder是一个功能强大、透明、参数高效的 8B 级开源代码模型系列,包括基础变体、指导变体和推理变体,由字节团队开源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值