'''
数据处理最重要的一个思想:先取数据集中少量数据进行各种输出处理,最后再扩展到整个数据集
此部分介绍一些数据预处理过程中常用的函数
'''
# -------------------------------------------------------分割线-------------------------------------------------------
'''
指定所要读取的文件路径
使用目录与文件名分开的方式,方便以后读取不同的新文件
'''
import os
dirpath = './dataset'
filename1 = '20230101.csv'
filepath1 = os.path.join(dirpath,filename1)
print(filepath1)
# -------------------------------------------------------分割线-------------------------------------------------------
'''
为了方便处理 这里我们只读取dataset里20230101文件的前五行数据
enumerate()函数
用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。 类似于字典的items()函数
可通过指定参数start设置开始比迭代的位置
'''
with open(filepath1,'r') as f:
data = []
for i,line in enumerate(f):
if i < 5:
data.append(line)
print(data)
# -------------------------------------------------------分割线-------------------------------------------------------
'''
'"40694bbcd84b0a646eccab629e814703\t1303125631\t1672570465\t1672588800\t18318"\n'
这是读取的其中一条数据
可以观察到:
(1)该数据每个字段中间都用\t分开
(2)每个字符串结束后有一个换行符
'''
'''
strip=()函数
用于去除一个字符串首尾指定的字符,默认为空格和换行符
split()函数
用于将字符串按指定的字符隔开,分为若干字段,并以列表的形式返回
一般都是先strip(),后split()
replace()函数
用于将字符串中所有指定的字符替换为我们指定的字符,常用于替换字符串的双引号,因为strip()函数删除引号偶尔会出错
'''
for i, item in enumerate(data):
'''
print(item.strip('\n'))
print(item.replace('"',''))
print(type(item))
print(item.split('\t'))
'''
data[i] = item.strip('\n').replace('"','').split('\t')
# print(data)
# -------------------------------------------------------分割线-------------------------------------------------------
filename2 = 'video_infos.csv'
filepath2 = os.path.join(dirpath,filename2)
print(filepath2)
if os.path.exists(filepath2):
videodata = []
with open(filepath2,'r') as f:
for i, item in enumerate(f):
if i < 5:
videodata.append(item)
print(videodata)
else:
print('file not exist')
# -------------------------------------------------------分割线-------------------------------------------------------
'''
'"1200202185\t大校女儿\t电视剧\t军旅\t主要讲述了二十世纪60年代人,对于爱情、婚姻、责任的抉择与放弃。\t张进战\t袁莉|郭晓冬\t2007\t内地\t7.3",,,,,,,,,,,,,,,,,\n'
'"2300026028\t民心难违\t电视剧\t悬疑|原创....
这是videodata中的两条数据
可以看到这两个电视节目中均有电视剧的标签
在或缺电视节目类型时,我们需要进行去重操作
'''
all_labels = []
for i, item in enumerate(videodata):
item = item.strip('\n').strip(',').replace('"','').split('\t')
# print(item)
all_labels.append(item[2])
print(all_labels) # 输出:['电视剧', '电视剧', '少儿', '音乐', '动漫']
# -------------------------------------------------------分割线-------------------------------------------------------
'''
set()函数
接受一个list作为参数
用于创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。
'''
all_labels = set(all_labels)
print(all_labels) # 输出:{'少儿', '电视剧', '动漫', '音乐'}
all_labels = list(all_labels)
print(all_labels) # 输出:['少儿', '音乐', '电视剧', '动漫']
# -------------------------------------------------------分割线-------------------------------------------------------
python 数据处理常用的一些函数
最新推荐文章于 2024-09-14 19:55:48 发布