Pandas对数据进行初始的清洗和整理

任务1:导入pandas库、读取Excel文件的人均GDP数据(选择包含我们所需数据的工作表,但跳过不需要的列和行。使用 sheetname 参数可指定工作表。将skiprows设置为4,将skipfooter设置为1,以跳过前四行(第一行已被隐藏)和最后一行。设置usecols参数的值,以获取A列、从C列到T列的数据(B列为空)。最后使用head查看前几行的数据示例。)

import pandas as pd
data=pd.read_excel(r"C:\Users\91295\Downloads\GDPpercapita.xlsx",sheet_name="OECD.Stat export",skiprows=4,skipfooter=1,usecols=[0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20])
data.head()

1678758499830.jpg
任务2:使用DataFrame的info方法查看数据类型和non-null(非空)值计数。
image.png
任务3:将Year列重命名为metro并删除前导空格。本例将给Metropolitan areas(都市圈)列一个适当的名称。在某些情况下,在metro值之前会有多余的空格,而在另一些情况下,会在metro值之后有多余的空格。因此,可以使用startswith('')测试前导空格,然后使用any来确定是否存在第一个字符仍为空白的情况。我们还可以使用endswith('')来检查末尾空格。最后使用 strip删除前导和末尾空格。

any(data["metro"].str.startswith(" "))#测试前导空格
any(data["metro"].str.endswith(" "))#测试后导空格
data["metro"]=data["metro"].str.strip(" ")#删除前后空格并赋值
data["metro"]
any(data["metro"].str.startswith(" "))#再次测试前导空格
any(data["metro"].str.endswith(" "))#再次测试后导空格

image.png
任务4:将数据列转换为数字。遍历所有GDP年份列(2001-2018),并将数据类型从object转换为float。即使存在字符数据(在此示例中为…字符),也强制转换。我们希望这些列中的字符值变成缺失值,这也正是会发生的事情。最后,重命名年份列以更好地反映这些列中的数据。

data.dtypes#查看数据类型
for i in range(1,10):
    data["200{}".format(i)]=pd.to_numeric(data['200{}'.format(i)], errors='coerce')
for i in range(10,19):
    data["20{}".format(i)]=pd.to_numeric(data['20{}'.format(i)], errors='coerce')
data.dtypes#确认数据类型

image.png
任务5:使用describe方法为DataFrame中的所有数字数据生成摘要统计信息,并删除所有人均GDP值缺失的行。使用dropna的subset参数检查所有列,从第2列(该参数的索引计数是基于0的,因此第2列的索引值其实是1)到最后一列。使用how 指定仅当subset中指定的所有列均包含缺失值时才删除行。最后使用shape显示结果 DataFrame中的行数和列数。

data.describe()
year=["2001","2002","2003","2004","2005","2006","2007","2008","2009","2010","2011","2012","2013","2014","2015","2016","2017","2018"]
data=data.dropna(how="all",subset=year)
data.shape

image.png
任务6:使用metro列设置DataFrame的索引。
image.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值