正文
Python和数据分析都是实践学科,光学理论,不练习,是不会有任何收获的,学完之后不练就忘掉了。最好的方式,就是先掌握一点基础语法,然后把Python融合到工作中,解决日常工作中碰到的问题。在解决问题的时候,你会碰到各种问题,可以去"百度"寻找答案。最后,要定期总结和输出。
特别提示,假如你没有基础或者基础薄弱的话,建议工作期间不要尝试用Python解决复杂的问题,这是一个很浪费时间的事情,中间各种问题,会让你崩溃。最终Python没学好,还耽误了工作。所以,要利用工作之余的时间,把python基础打扎实。
首先,需要安装python,我要推荐Anaconda3,从事数据分析的伙伴们,严重推荐此软件!
Anaconda降低了数据分析初学者的学习门槛,因为这个软件自带了python中大概有1000多个数据科学包,让你无需单独学习每个库的安装方法。另外,还自带了Jupter notebook代码编译器。现在,Anaconda和Jupyter notebook已成为数据分析的标准环境。
https://mp.weixin.qq.com/s/53-KvHGYqCSx8qtUnub_vw
安装完成后,打开Jupter Notebook,就可以在上面输入代码。
现在工作中面临一个批量化文件处理的问题:就是要把每个二级文件下csv文件合并到一个数据表里,同时要在最终的数据表里增加两列,一列是一级文件目录名称,另一列是二级文件目录名称。
当工作中,碰到这样的问题时,我用最笨拙的方法——人工,一个一个文件整理,但是效率比较低,可能需要一个人一天的工作量。当然,我也可以寻找技术的帮忙,找一个Java工程师,这个问题也很容易解决,但麻烦别人一次,没问题。以后碰到类似的问题,总是麻烦,就不好了。假如自己掌握了Python,这个问题就变得很简单了。
其实这个问题,对于一个专业的Python程序员来说,是一个再简单不过的问题。但是对于一个初学者来说,要解决这个问题,恐怕需要费一点时间和脑力。
1、首先,要读取文件名称,需要引入OS模块下的listdir函数
2、其次,遍历所有一级、二级、三级文件名称,需要用到for循环和循环嵌套
3、然后,读取文件下csv表,需要用到pandas模块下的read_csv函数
4、最后,整理合并后的所有表,需要用到DataFrame的操作方法
#导入模块 import osimport pandas as pd##定义一个读取文件名的函数 def readname (a) : filePath="D:\\\\ad_data\\\\" +a+"\\\\" name=os.listdir(filePath) return name#声明初始变量 a="" name= readname(a) data_new =pd.Dataframe()#循环遍历文件名称 for i in name: name1=readname(i) for j in name1: file_path = "D:\\\\ad_data\\\\" +i+"\\\\" +j+"\\\\" name3=os.listdir(file_path) for t in name3: csv_path = "D:\\\\ad_data\\\\" +i+"\\\\"