题 目 总 览
文中所需要的文件在文章最后,如有需要可免费拿走。
代码总览
代码总览,先展示完整代码,后面有代码完整解析。
一.使用python进行数据清洗
先要下载一个 “pandas”库
然后就是导入”pandas“库, 后面 as 改名为”pd“ 这里是为了后面用这个库少打点代码用的。
然后读取“.csv”文件。我这里是“hotel.csv"
读取的文件赋值给名字为“shuju”的变量名。
最后输出
import pandas as pd
shuju=pd.read_csv('hotel.csv')
print(shuju)
这是执行结果,
(1)删除hotel.csv 中 商 圈 为 空 的 数 据
删除 “csv”文件中商圈为空的数据并且存入另一个csv文件中,里面存放删除空数据后的文件文件。
首先我们要有一个思路,一个好的思路才能继续把题做下去,没有思路做题就像大海捞针摸不清楚。
import pandas as pd
shuju=pd.read_csv('hotel.csv')
print(shuju)
shukong=shuju.dropna(subset=['shopping'])
kong=shuju.shape[0]-shuju.shape[0]
shukong.to_csv(f'hotel2_cl_{kong}.csv',index=False)
这里我定义一个变量名“shukong”,然后利用“dropna”函数去丢弃含空值的行,后面要加上“subset”函数,让dropna函数去查找‘shopping’这一列空值。
然后我再定义一个函数‘kong’删除这些空数据,这里要用到‘shape’函数,删除空值。
把清理后的文件保存到题目目录下,中间‘{kong}’是删除的数据条数,index=False,表示不保存索引。
(2)删除文件中缺失值大于三个的数据列并存入至hotel2_c2_N.csv,N 为删除的数据列变量名,多列时用下划线“_”间隔无顺序要求。
liehang=[col for col in shuju.columns if shuju[col].isnull().sum() >3 ]
shushi=shuju.drop(columns=liehang)
Nliehang='_'.join(liehang)
shushi.to_csv(f'hotel2_c2_{Nliehang}',index=False)
这里我定义一个变量名‘liehang’这里创建一个列表,‘col’某列,‘for’到某列,如果某列col的缺失值大于3,则该列的名称添加到列表。
‘shushi’创建一个新的数据库,'drop'函数是从‘shuju’中移除‘liehang’列表中的列
‘Nliehang’这里计算并保存已被移除的列名连接成的字符串变量,‘ _ ’为连接符,
最后清理后的数据保存到题目目录下。index=False 表示不保存索引
(3)将hotel.csv文件中评分为空的数据设置为0并且存入hotel2_c3.csv,文件中。
shufen=shuju.fillna(0)
shufen.to_csv('hotel3_c3.csv',index=False)
首先创建一个新的数据库‘shufen’把缺失值替换成0,生成一个新的数据框
把数据存入到指定目录下。
(4)将hotel.csv中评分为空的数据设置为总平均分并且存入hotel2_c4_N.csv,N为总平均分,保留一位小数。
pingfen=shuju['score'].mean()
zongpingfen=shuju.fillna(pingfen.round(1))
Npingfen=pingfen.round(1).astype(str)
zongpingfen.to_csv(f'hotel2_c4_{Npingfen}.csv',index=False)
print(Npingfen)
‘score’先去看评分这一列,数据里面用英文代替的,所以我们这里查看的是'score','mean'函数是求取平均值。
'zongpingfen'这里是用到数据填充函数‘fillna’,‘round’保留一位小数。
‘Npingfen’这里是在‘pingfen’数据里面计算平均值,保留一位小数,结果转换为‘str’字符串类型。
结果保存到指定文件目录下。
您对这次的讲解是否满意呢,欢迎投票!
到此本题解释完毕,文件在下方,如有疑问可在评论区发言,或者私信博主。
提取码:9miz
谢谢观看。(๑•̌.•๑) (๐•ᴗ•๐)