python数据分析数据清洗,用python进行数据清洗

  python数据分析数据清洗,用python进行数据清洗

  数据科学家80%的时间花在清理任务上?

  将数据清理规则总结为四个要点:“完全集成”

  完整性:单个数据中是否存在空值,统计字段是否完善。

  全面性:观察一列的所有值。例如,如果我们在Excel中选择一列,我们可以看到该列的平均值、最大值和最小值。我们可以通过数据定义、单位标识、数值本身等常识来判断这个栏目是否有问题。

  合法性:数据类型、内容和大小的合法性。比如数据中有非ASCII字符,性别未知,年龄超过150岁。

  唯一性:数据是否存在重复记录,因为数据通常来自不同渠道的汇总,重复是常见的。行和列数据需要是唯一的。比如一个人不能重复记录,一个人的体重不能在列指标中重复记录。

  1完整性

  问题1:缺少值

  一些年龄和体重值丢失,但这些值没有被收集。通常使用三种方法:

  删除:删除缺少数据的记录。

  平均值:使用当前列的平均值。

  高频:使用当前列频率最高的数据。

  想要用平均年龄填充DF [age]中缺少的值:

  df[年龄]。菲尔娜(df[年龄]。平均值(),原地=真)

  用最高频率的数据填充。可以通过value_counts获取年龄字段的最高频率age_maxf,然后用Age _ maxf填充年龄字段中缺失的数据:

  age_maxf=train_features[Age]。value_counts()。索引[0]

  train_features[Age]。fillna(age_maxf,inplace=True)

  问题2:空行

  读入数据后需要使用dropna()对数据进行处理,删除空行。

  #删除所有空行

  df.dropna(how=all ,inplace=True)

  2全面性

  问题:列数据的单位不统一。

  使用千克作为计量单位,将磅转换成千克。

  #在重量数据栏中获取以磅为单位的数据

  rows _ with _ lbs=df[ weight ]. str . contains( lbs )。菲尔娜(假)

  打印df[行数和磅数]

  #将磅转换为千克,2.2磅=1千克

  对于I,df中的lbs _ row[rows _ with _ lbs]。iterrows():

  #截取开头到最后三个字符,即去掉lbs。

  weight=int(float(lbs _ row[ weight ][:-3])/2.2)

  df.at[i, weight]={}kgs 。格式(重量)

  3合理性

  问题:非ASCII字符

  或者删除或替换来解决非ASCII问题。

  #删除非ASCII字符

  df[名字]。replace({r[^\x00-\x7F] :},regex=True,inplace=True)

  df[姓氏]。replace({r[^\x00-\x7F] :},regex=True,inplace=True)

  4独特性

  问题1:一个列有多个参数。

  姓名列(姓名)有两个参数:名字姓氏。将姓名列拆分为两个字段:名字姓氏。使用split方法str.split(expand=True)将列表拆分为一个新列,并删除原来的name列。

  #拆分名称并删除源数据列。

  df[[名字,姓氏]]=df[名字].str.split(expand=True)

  df.drop(name ,axis=1,inplace=True)

  问题2:重复数据

  如果存在重复记录,请使用drop_duplicates()删除重复数据。

  #删除重复的数据行

  df.drop_duplicates([名字,姓氏],inplace=True)

  练习:

  清洁食品数据:

  食物

  盎司

  动物

  培根

  4.0

  猪

  手撕猪肉

  3.0

  猪

  培根

  圆盘烤饼

  猪

  熏牛肉

  6.0

  母牛

  罐装咸牛肉

  7.5

  母牛

  培根

  8.0

  猪

  五香烟熏牛肉

  -3.0

  母牛

  蜂蜜火腿

  5.0

  猪

  新lox

  6.0

  鲑

  进口熊猫作为pd

  用熊猫清理食物数据

  #读取csv文件

  df=pd.read_csv(c.csv )

  Df [食物]=df [食物]。str.lower () #是小写字母。

  Df.dropna(inplace=True) #删除缺少数据的记录

  Df [盎司]=df [盎司]。Apply (lambda A: ABS (a)) #负值不合法,取绝对值。

  #找到食物的重复记录,将它们分组以找到它们的平均值。

  d_rows=df[df[food]。重复(keep=False)]

  g_items=d_rows.groupby(food )。平均值()

  g_items[food]=g_items.index

  打印(g_items)

  # Traversal将重复食物的平均值分配给df

  对于I,g_items.iterrows()中的row:

  df.loc[df.food==row.food, ounces]=row.ounces

  df . drop _ duplicates(in place=true)#删除重复记录

  Df.index=range(len(df)) #重置索引值

  打印(df)

  或者

  朱皮特笔记本,python3

  进口熊猫作为螺纹中径

  df=PD。read _ CSV(r d://Data _ for _ sci/food。CSV’)

  df。索引

  df

  #小写的数据清理

  df[食物]=df[食物]。海峡。下部()

  df

  # Delet NaN

  df=df.dropna()

  df.index=range(len(df)) #重置索引

  df

  #得到培根的平均值,删除第二个

  df.loc[0,盎司]=df[df[食物]。isin([培根])]。mean()[盎司]

  df.drop(df.index[4],inplace=True)

  df.index=range(len(df)) #重置索引

  df

  #获取熏牛肉的平均值并删除第二个平均值

  df.loc[2,盎司]=df[df[食物]。isin([熏牛肉])]。mean()[盎司]

  df.drop(df.index[4],inplace=True)

  df.index=range(len(df)) #重置索引

  df

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 2020年高考成绩分布表,2020年高考成绩统计,数据分析2020年全国各省高考成绩分布情况
  • ,,python实现数据分析与建模
  • python3 数据分析,python数据分析课堂
  • 《数据思维》,数据分析的思维导图
  • python数据分析就业方向,python数据分析毕业论文
  • python数据分析数据清洗,python中数据清洗
  • 基于Python的数据可视化,python数据分析及可视化处理的第三方库
  • 利用python进行数据分析豆瓣,python数据分析基础和利用python进行数据分析
  • python对excel表格数据的统计和分析,python进行excel数据分析
  • 从零开始学Python数据分析与挖掘,自学python数据分析
  • python数据分析结构思维导图,python组合数据类型思维导图
  • 关联规则分析案例,关联规则数据分析题,关联规则的实际案例数据
  • 数据分析与商业数据分析,120个Excel商业数据分析实战案例
  • python数据分析excel读写,python 读取excel数据
  • python数据处理与分析案例,python项目数据分析案例集锦
  • 留言与评论(共有 条评论)
       
    验证码: