软件应用丨经济学专业学习Python之数据处理工具大集合
有意栽花花不发,无心插柳柳成荫。
”写论文的时候,想要的数据永远都是费尽心机弄到手,然后还需一顿精雕细琢才能够使用。我们公众号推过一篇根据企业注册地址数据,清理企业所在县级行政规划的代码的文章(忘了的小伙伴可以点这里复习)。
如果你是对数据要求不高的人,那就可以简单通过企业注册地址是否包含“某个城市或县市区名”来确定企业所在地。但细想起来,可能并不是这么简单:
1. 数据处理工具
1.1 字符串处理
切片处理:切片即截取字符串中指定位置的几个字符,使用方括号[]来完成。
替换字符:替换字符串中的某个字符为指定字符时使用replace()。
移除空格:移除字符串首尾空格,直接使用strip()、lstrip()、rstrip();移除字符串中间的空格可以使用replace替换为空字符。
拆分字符串:将一个字符串拆分为多个字符串时,可以使用split(),按照某个字符进行拆分。
定位字符:想要确定某个字符在字符串中位置的时候,可以使用find()。
…………
1.2 正则表达式
1.3 Pandas
Pandas是基于numpy(Python中用于科学计算的包)的一种工具,该工具是为了解决数据分析任务而制作出来的的。由于在做数据分析之前,也会需要做一些常规的数据处理。例如常规的去重、空值处理等等,在Pandas中都可以“一键完成”。加之其方方正正的二维数据表格模式,所以Pandas也可以用来做一些数据的预处理。
由于本公众号已有不少用到Pandas的文章,所以这里不再具体展开了(但是可以在公众号内发送暗语“Pandas”进行复习喔~)。总之,用过的人都说好。
1.4 编码
引自企研数据内部培训资料
部分原文:
https://blog.csdn.net/csywwx2008/article/details/17137097
主流的编码有以下几种:ASCII:American Standard Code for Information Interchange,用来表示英文,它使用1个字节表示,其中第一位规定为0,其他7位存储数据,一共可以表示128个字符。(Python2的默认编码格式)
GBK/GB2312/GB18030:表示汉字。GBK/GB2312表示简体中文,GB18030表示繁体中文。(GB2312 是对 ASCII 的中文扩展;GBK 兼容ASCII ,兼容 GB2312,是GB2312的扩展 )
Unicode:包含世界上所有的字符,占2个字节,是一个字符集。同一个Unicode 码,在不同的语言中表示不同的字符,由其他软件根据语言环境来进一步转换。(又称统一码、万国码、单一码)
UTF-8:8-bit Unicode Transformation Format,即通用转换格式,是Unicode字符的实现方式之一。它是可变长短的 ,从英文字母的一个字节,到中文的通常的三个字节,再到某些生僻字的六个字节。更多的,他兼容了老大哥ASCII编码,在一些古老的软件上也能用。(Python3的默认编码格式)
一言以蔽之:Unicode是内存编码表示方案(是规范),而UTF是如何存储和传输Unicode的方案(是实现)这也是UTF与Unicode的区别。
图三是Python3中的编码转换方式:
图三
图片来自https://www.cnblogs.com/shengxinjack/p/7735729.html
1.5 存储过程
科普园地 /Science Park
存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。
——百度百科
2. 效率提升工具
2.1 算法
算法比较抽象,我这里以三个函数为例:
import time
list0 = list(range(2,20000)) * 2 + [1]
def singleNumber1(nums):
gen = filter(lambda num0: nums.count(num0)==1, nums)
return next(gen)
def singleNumber2(nums):
dict0 = {}
for num0 in nums:
if num0 in dict0:
dict0.pop(num0)
else:
dict0[num0]=1
return list(dict0.keys())[0]
def singleNumber3(nums):
output = 0
for num0 in nums:
output = output^num0
return output
左右滑动查看更多
这是LeetCode(国外著名刷编程题目的网站)上的一道题。大意是——
我有一大堆的数字,除了某一个以外,其他的都是成双成对出现的。请找出这个单独的数字。
2.2 多线程与多进程
计算密集型的项目,适合多进程; IO密集型(可以理解为读写频繁的那种)的项目,适合多线程。
3. 结语
►一周热文
数据Seminar
这里是大数据、分析技术与学术研究的三叉路口
欢迎扫描👇二维码添加关注