本站消息

  出租广告位,需要合作请联系站长

  今日名言-想象你自己对困难作出的反应,不是逃避或绕开它们,而是面对它们,同它们打交道,以一种进取的和明智的方式同它们奋斗 。——马克斯威尔·马尔兹

  今日名言-用谅解、宽恕的目光和心理看人、待人。人就会觉得葱笼的世界里,春意盎然,到处充满温暖。——蔡文甫


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

大数据清洗4(pandas-DataFrame常用操作)

发布于2021-07-25 07:07     阅读(911)     评论(0)     点赞(29)     收藏(4)


在这里插入图片描述

一、数据查看与描述

【首先讲述一下如何进入jupyter notebook,需要下载anaconda,在anaconda里面下载numpy以及pandas,具体操作:软件安装,然后打开控制页面,输入jupyter notebook,即可,复制所给链接就可以进入啦
在这里插入图片描述
】进入正题

df = pd.read_csv("D:\data\sales.txt",sep='\t',index_col=0) df.index = ["001","002","003","004","005","006","007"] df

在这里插入图片描述

df.shape #查看数据框的形状
df.head(2) #查看数据框的前几行,默认前5行
df.tail(3) #查看数据框的结尾几行,默认后5行
df.index #查看行索引
df.columns #查看列索引
 df.info()#查看数据框的详细信息

在这里插入图片描述

#进行简单的描述统计 
df.describe()

在这里插入图片描述

df.sort_index() #升序排序
df.sort_index(ascending=False) #降序排序

在这里插入图片描述

在这里插入图片描述

df.sort_values("销售业绩") #默认升序排序

在这里插入图片描述

df["工龄"] = [1,3,7,5,6,4,2]
df

在这里插入图片描述

df.sort_values(["销售业绩","工龄"]) #默认升序排序

在这里插入图片描述

df.sort_values(["销售业绩","工龄"],ascending=False) #降序排序
df.sort_values(["销售业绩","工龄"],ascending=[False,True]) #降序排序

二、缺失值的处理

df.iloc[[0,1,3,5],[1,2,4,6,9]] = np.nan #认为制造缺失值 df

在这里插入图片描述

1、查看缺失值

df.isnull()

在这里插入图片描述

df.isnull().sum() #查看缺失值数量

在这里插入图片描述

df.isnull().mean() #查看缺失值比例

在这里插入图片描述

df.shape
df.isnull().sum()/df.shape[0]

在这里插入图片描述

df.员工等级.value_counts()

在这里插入图片描述

2、填充缺失值

df.fillna(0)

在这里插入图片描述

df.fillna(df.mean())

在这里插入图片描述

df.fillna(method="bfill",limit=1) #limit限制填充次数

在这里插入图片描述

df.replace(np.nan,0)
df.replace(np.nan,df.median()) #用中位数进行填充

在这里插入图片描述

df.fillna(method="ffill")

在这里插入图片描述

df.replace(method="ffill")

3、删除缺失值

df.dropna() #默认按照行进行删除
df.dropna(axis=1)#按照列进行删除
df.dropna(how='all')#按照列进行删除

三、数据的合并

1、pd.concat()函数

#来自两个分公司的表 
df_1 = df.iloc[:4] 
df_2 = df.iloc[4:] 
df_1 df_2
pd.concat([df_1,df_2])

在这里插入图片描述

pd.concat([df_1,df_2],keys=["df_1","df_2"])

在这里插入图片描述

df_s = df.iloc[:,:7] #销售部门统计表 
df_h = df.iloc[:,[0,7,8,9,10]] #人力统计表 
df_s 
df_h
pd.concat([df_s,df_h],axis=1)

在这里插入图片描述

pd.concat([df_s,df_h],axis=1,keys=["df_s","df_h"],names=["来源表","索引"])

在这里插入图片描述

2、pd.merge()函数

pd.merge(df_s,df_h,on="员工姓名")
df_ss = df_s.copy()
df_ss.columns=["姓名","销售业绩","提成收入","基本工资","社保金额","创造收益","是否达标"]
df_ss

在这里插入图片描述

pd.merge(df_s,df_h)

在这里插入图片描述

pd.merge(df_ss,df_h,left_on = "姓名",right_on="员工姓名")

在这里插入图片描述

四、分组运算

gp1 = df.groupby("性别") 
len(gp1) #查看分组数 # 2
gp2 = df.groupby("员工等级") 
len(gp2) #3
gp1.size()

在这里插入图片描述

gp1.mean()

在这里插入图片描述

gp1["销售业绩"].mean()

在这里插入图片描述

gp3 = df.groupby(["性别","员工等级"]) 
len(gp3)   #5
gp4 = df.groupby(["性别","员工等级"],as_index=False)
gp4.mean()

在这里插入图片描述

gpp = gp2["销售业绩"].agg([np.mean,np.std]) 
gpp

在这里插入图片描述

gpp.rename(columns={"mean":"平均销售额","std":"标准差"})

在这里插入图片描述

gp2.agg({"销售业绩":np.mean,"提成收入":np.std})

在这里插入图片描述

五、数据透视表

pd.pivot_table(df,values="创造收益",index="员工状态")

在这里插入图片描述

pd.pivot_table(df,values="创造收益",index="员工状态",columns="员工等级") #默认聚合方式为求均值
pd.pivot_table(df,values="创造收益",index="员工状态",columns="员工等级",aggfunc=np.sum) #更改聚合方式为求和
pd.pivot_table(df,values=["创造收益","销售业绩"],index="员工状态",columns="员工等级",aggfunc=np.sum) #更改聚合方式为求和
pd.pivot_table(df,values=["创造收益","销售业绩"],index=["员工状态","性别"],columns="员工等级",aggfunc=np.sum) #更改聚合方式为求和
pd.pivot_table(df,values=["创造收益","销售业绩"],index=["员工状态","性别"],columns="员工等级",aggfunc=[np.sum,np.mean]) #更改聚合方式为求和
pd.pivot_table(df,values=["创造收益","销售业绩"],index=["员工状态","性别"],columns=["员工等级","是否达标"],aggfunc=[np.sum,np.mean]) #更改聚合方式为求 和

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述



所属网站分类: 技术文章 > 博客

作者:想要飞翔的天使

链接:http://www.pythonpdf.com/blog/article/486/50d7a59b8488400ca76d/

来源:编程知识网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

29 0
收藏该文
已收藏

评论内容:(最多支持255个字符)