python 数据处理常用的一些函数

'''
数据处理最重要的一个思想:先取数据集中少量数据进行各种输出处理,最后再扩展到整个数据集
此部分介绍一些数据预处理过程中常用的函数
'''


# -------------------------------------------------------分割线-------------------------------------------------------

'''
指定所要读取的文件路径
使用目录与文件名分开的方式,方便以后读取不同的新文件
'''
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) # 输出:['少儿', '音乐', '电视剧', '动漫']

# -------------------------------------------------------分割线-------------------------------------------------------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值