实习杂记(一)


前言

刚开始实习大概一个月,打算记录一下平时在学校用不到但是在公司比较频繁使用的东西


一、python相关模块

1.OS

查看当前路径

import os
os.getcwd()

查看当前路径下的文件

os.listdir()
#在查看某文件是否存在在路径可这样
for f_name in os.listdir(path):
    if 'test' in f_name:
        print(f_name)

增删改

os.mkdir(file)#创建一个目录文件
os.rmdir(file)#删除一个目录文件(必须是空的)
os.rename(file)#重命名目录名/文件名,若重命名的名字重复则失败

判断

#判断目录/文件是否存在
os.path.exists(path)
#判断是否为目录
os.path.isdir(path)
#判断是否为文件
os.path.isfile(path)

2.数据处理方面

如果数据过多时,且数据的某个字段是分类的,则可以用以下方法。
首先先将处理的手段包装成一个函数,将数据以分类字段用groupby()来组合一下,再通过apply()函数来处理
例:

import pandas as pd
data = pd.DataFrame([[1,2,3,4,'a'],[11,22,33,44,'b'],
	[10,20,30,40,'c'],
	[10,210,3210,43210,'a'],
	[1,2,3,4,'a'],[11,22,33,44,'b']])
data.columns = ['col1','col2','col3','col4','class']		

data数据格式
在这里插入图片描述处理数据的函数

def datagro_func(data):
    data_list = data.values.tolist()
    for i in range(len(data_list)):
        data_list[i][0] += 1
        data_list[i][1] *= 2
        data_list[i][3] /= 2
    print(data_list[0])
    return data_list

处理方法

data_gro = data.groupby('class')
data_test = data_gro.apply(datagro_func)
pd.DataFrame(data_test[0]+data_test[1]+data_test[2])#注意此处

处理结果在这里插入图片描述

当数据量较小的时候不太适合使用这个方法,但在数据量相对大的时候可以尝试一下,我认为对比for循环来说在时间成本上可能较低(个人看法)。

不过这里有一个方面需要注意:输出的结果的格式问题
由于是先groupby,数据会以分类的字段来进行重新排序,同时如果不加以处理而直接使用pd.DataFrame(data)的话会出现比较大的数据格式问题

pd.DataFrame(data_test)

结果:在这里插入图片描述他列表形式的输出是这样子的:
在这里插入图片描述
可以看到列表内部都会根据分类的字段进行整合,所以我会先将列表加起来,后面再进行处理

pd.DataFrame(data_test[0]+data_test[1]+data_test[2])

二、crontab

由于有一些数据是实时的,需要设立一个定时任务来定时下载、处理以及上传到数据库中,所以需要用到这一个
crontab是在linux系统上使用的(或者在windows上也能使用?不过我只在linux上使用)定时任务设定的好用的模块,通过它可以设立一个每天、每小时乃至每分钟的定时任务来运行脚本。

crontab的输入格式为:
minute hour day month week command

minute代表时间,范围在0-59之间

hour代表时间,范围在0-23之间

day代表时间,范围在1-31之间

month代表时间,范围在1-12之间

week代表时间,范围在1-7之间

command代表你即将运行的代码/脚本
例如:
每半小时运行test.sh

*/30 * * * * /home/test.sh

每天的5:20分运行一次test.sh

20 5 * * * /home/test.sh

每个月的星期一至星期五的每天0点,12点运行python脚本test_.py

* 0,12 * * 1-5 python /home/test_.py

总结

由于只是出来实习了一个月左右,现阶段主要还是协助同事处理数据以及探索数据中,所以也没有在对数据更深层面的梳理和建模上有进一步的学习,只学习到了一些看似杂乱但实际上用处颇多的东西,于此记在杂记上。
PS:如果有哪里不对请大神们帮忙提醒以下,谢谢![花花]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值