项目实训第一周工作(2)

项目实训题目:饮食健康管理系统设计与实现

我的工作:数据清洗

具体工作事项:数据清洗;错误数据处理;图片大小归一化;图片存放位置归并;与数据库同学沟通;不对应(冗余或缺失)图片的删除与处理等。

本博客旨在记录工作内容。


本次博客学习与记录内容:数据清洗。

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一无所知到现在可以勉强运用,虽然工作做得比较慢,但是已经尽力而为。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值