Pandas基础 - 数据处理

Pandas的数据处理

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

Pandas基础 - 数据处理
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列。
Pandas基础 - 数据处理

DataFrame 的过滤

  1. 两种df的过滤对比:df > 0 表示表里每一个元素是否大于0,返回的是布尔值。df[df>0]表示留着大于0的数,Nan表示空值。
    Pandas基础 - 数据处理

  2. 对大于0 的数求和,计数,求平均,进行聚合运算。
    Pandas基础 - 数据处理

  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的所有行。
    Pandas基础 - 数据处理

  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的列。

Pandas基础 - 数据处理

DataFrame 的缺失值判断

  1. 第一步,需要用到的2个库:numpy and pandas(Series 和 DataFrame)。
    Pandas基础 - 数据处理

  2. 第二步,读取数据pd.read_csv +设置索引index= arange(1,100),查看数据是用head()都是否设置成功。
    Pandas基础 - 数据处理

  3. 第三步,df.info() 查看数据类型,float 浮点=小数,object 文本 non-null 没有缺失 ,total 5 columns 共5列,int 64位,占用内存:7KB。
    Pandas基础 - 数据处理

  4. 第四步,df.mean() 表示对列中的数值型数据求平均,df.describe() 表示对所有数值型数据进行描述性统计。
    std 标准差,25%上四位分数,75%下四位分数。
    Pandas基础 - 数据处理

  5. 将a中的列表,改成dataframe 表格形式,如果在之前没有导入datafame,series ,可以用b = pd.Dateframe代替。
    Pandas基础 - 数据处理

Series 的增删改查

  1. 用pandas 中的库 导入Series 及DataFrame +设置索引,注意 series() 的前半部分是列表,后半部分是索引。
    Pandas基础 - 数据处理
  2. 因为s 是序列,所以能用[ ] 直接导出数据,增加或修改直接改变原数据。

Pandas基础 - 数据处理
3. 不能有括号,drop 的是一个 。
Pandas基础 - 数据处理

  1. s.pop() 弹出"f" ,直接改变原数据。s.loc[“b”] =5直接将b 设置成5。
    Pandas基础 - 数据处理

Dataframe 的增删改查

1.创建DataFrame的表,[[ ]] 表示二维,index 表示索引,要有3个,cloumns 列名要有3个。
Pandas基础 - 数据处理

  1. 在原来的t1上面增加显示索引y行=[7,5,4],共4行,3列。
    Pandas基础 - 数据处理

  2. 在DataFrame 中删除行用 drop (行)及pop(列)。
    Pandas基础 - 数据处理

  3. 增加 t1 的列等于 t1的列名为 k 列 加上 t1 的 列名为一列 的数据总和。
    Pandas基础 - 数据处理

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

Pandas基础 - 数据处理

  1. t1 = t1.drop([“A”,“B”],axis = 1, inplace = Ture) 表示删除“A”列与"B"列,inplace 等于true 表示 同意修改原数据。
    Pandas基础 - 数据处理

  2. 表示增加一列,一列的列名为seven,t1.sum(axis =1) 表示求每一行的总和,有e,f,g 三行表示有3个值,此时为序列,用[ ] 表列装进去组成了一列并加了列名。
    Pandas基础 - 数据处理

  3. 表示t1.sum() 和t1.sum(axis = 0) 效果一样 都是求每列之和。
    Pandas基础 - 数据处理

Dataframe 的排序及调整

  1. df[“A”].sort_values() 对df的A列进行值的排序(正序)。
    Pandas基础 - 数据处理

  2. df_copy.sort_index 指将df_copy 进行排序,里面的参数有self, axis, ascending, inplace, kind, na_position, ignore_index。axis = 1 是选择行,axis = 0 选择列。ascending 是升序,ascending = True 是降序的意思。
    Pandas基础 - 数据处理

  3. df_copy.sort_values(by = “A”, ascending = False ) 。by指通过哪列进行排序,ascending/asc(sql) 按照什么 顺序进行排序。
    Pandas基础 - 数据处理

  4. df1.set_index 重置索引(), [“A”,“B”,“C”,“D”] 表示重置行的索引。reset_index(drop = False)保留原索引,加上新索引,当drop = True 时,删除原索引,保留新索引。
    Pandas基础 - 数据处理

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

Pandas基础 - 数据处理

  1. pandas 中DataFrame 数据的填补,空值用np.nan ,nan只能用小写,用大写Nan会报错。其次a 一定要是二维的数据{{ }},[[ ]] , (( )) 。
    Pandas基础 - 数据处理
  2. DataFrame 中提取单列或连继几列一定要加显示或者隐式索引。不加索引就要用[ ]显示二维。
    Pandas基础 - 数据处理
    Pandas基础 - 数据处理
  3. DataFrame 中提取[“一”]列,loc提取序列,当 a= data.loc[:,“一”:“三”] 提取的是表格,因为有多列,而 [ ] 始终提取的是表格。
    Pandas基础 - 数据处理
  4. 删除原数据的某一列,要用drop( 列名,axis = 1),删除那一行用drop(行名,axis = 0)
    Pandas基础 - 数据处理
    Pandas基础 - 数据处理

Dataframe 的合并及重塑

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

Dataframe 的分组运算

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

Dataframe 的聚合运算

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

Pandas基础 - 数据处理
2. agg 聚,自动的意思,经常与groupby连用。agg()里面放的np中的聚合函数。
Pandas基础 - 数据处理
3. 1)自定义ptp 函数,return 返回最大减去最小值。然后通过种类分类。
Pandas基础 - 数据处理
2)lambda 返回所有列数据的最大减去所有列数据最小值,得到所有列数据,然后通过种类分类。
Pandas基础 - 数据处理
4. 找出所需要的列,通过种类分类,将价格的方差transform 到这个表里。
Pandas基础 - 数据处理
5. data.pivot_table(index = [“种类”]) #先种类分组,再平均
Pandas基础 - 数据处理6. data.pivot_table(index=[ “种类”,"产地].aggfunc = np.sum) #先种类分组,再平均
Pandas基础 - 数据处理
7. pd.crosstab(data[“种类”],data[“产地”]) 指分类分组频数,常用
Pandas基础 - 数据处理
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