项目实训题目:饮食健康管理系统设计与实现
我的工作:数据清洗
具体工作事项:数据清洗;错误数据处理;图片大小归一化;图片存放位置归并;与数据库同学沟通;不对应(冗余或缺失)图片的删除与处理等。
本博客旨在记录工作内容。
本次博客学习与记录内容:数据清洗。
1.pandas库
第一次使用 Pandas 之前,我们需要安装 Pandas。在file-settings-python interpret安装。
导入pandas:代码如下
import pandas as pd
2.运用pandas库读取文件
代码如下:
df1 = pd.DataFrame(pd.read_csv('1.csv',header=1))
print(df1)
读取了1.csv这个文件,其中csv是逗号分隔的一个excel文件,print()即打印,在下方可以看到大致的文件情况。
3.数据的预观察
想要清洗数据,要先明白数据代表了什么含义,什么数据是有必要清洗的,什么数据是务必要保留下来的。在我的第一部分数据中,有三个csv文件,第一个是用户id和其url,第二个是食物id和其url,第三个是用户id和食物id的联系,即该用户id和几个食物id发生过交互。
4.进行去重操作
清洗的第一步我认为就是去重,pandas库给予了我们非常方便强大的去重函数,如下:
df2 = df1.drop_duplicates();
运用这个语句就可以实现去重操作。因为三个文件都有重复,所以需要迭代的对三个文件进行去重。
5.缺失值等其他数据的清洗
从事先观察可以看出,三份文件没有缺失值,所以暂时没对其进行处理,但这不代表我这部分工作不用做了,在后面的对食物名称的清洗工作中,有更繁杂的数据清洗要做,现在先不说。
6.查找100名优质用户
因为文件中有很多用户,最终用不到那么多,所以就需要找到100个优质用户,优质用户即既不是大v也不是僵尸的用户,在这里我选择交互食物数在8-10个的用户为优质用户,从其中随机挑选100个作为本次的需要用户。代码如下:
mport pandas as pd
user_ids_frame = pd.read_csv("yz.csv", encoding="utf-8", names=[0])
user_ids = user_ids_frame[0]
biao1 = pd.read_csv("1.去重后.csv", encoding="utf-8", names=[0, 1])
print(biao1[0])
ls = []
for i in range(len(biao1)):
if biao1[i][0] in user_ids:
ls.append(biao1[1][i])
print(ls)
# print(biao1)
# print(user_ids_frame)
def duplicate_list(ls):
tmp = []
for i in ls:
if i not in tmp:
tmp.append(i)
return tmp
ls = duplicate_list(ls)
print(ls)
import numpy
numpy.savetxt('lsls.csv', ls, delimiter = ',')
# item = pd.read_csv('5.csv')
#
# for i in ls:
# print(str(item['recipeID'].values.item(i)) + str(item['url'].va))
得到了一个关于用户的一维数组
今日总结
今天学习了pandas库,让自己从对python一无所知到现在可以勉强运用,虽然工作做得比较慢,但是已经尽力而为。