python 模块化 处理大文件 tsv csv
2021-05-08 01:27
标签:就是 怎么 https 很多 read get tab 指标 老师 男朋友又让我给他处理数据,其中一个数据大小有10g以上,我还需要把这个数据和其他数据进行匹配,然后分组统计得到一些数据。 之前简简单单用一下read_csv不能打开这么大的数据,我在寻找办法。 因为要做匹配,所以我本来打算模块化把数据写进来之后,然后再合并起来做。但是总是不行,报错。最后可能要先分组处理完,再合并。因为这个数据里应该有很多不用的数据,还是有希望。 中间看到有人说可以用dask包处理很大的文件,很轻松。我看了一下,我觉得就算我读入了,我后面很难操作,我还没到能很快学会一个新包的程度。我还是先好好把pandas用好吧。哭了。 想和男朋友讨论一下,怎么弄这个事,他说他不管过程,只要结果。我就是想和他说一说,然后把自己的思路梳理清楚,他都不听。他说他老师和他交代这些事,也从来不管过程,给他结果就好了。 怎么这样,我一直觉得我和他的学术地位是平行的,我们是合作关系,现在他都骑到我头上了。缺骂。 tsv文件其实就是用tab做分隔符的文件 和csv唯一的区别就是sep参数 我已经试了一些方法,都不能打开这个大文件,我决定先看一眼这个文件有多少行。对后面模块化处理文件心里有个数。 ‘rb’是因为之前用‘r’出现以下编码错误:“UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xb2 in position 6311: illegal multibyte sequence” 但是没想到这个数据这么顽劣,想看看有多少行都不行,给我报‘MemoryError’ 烦死人。 换了个办法,没想到看看有多少行,也得模块。 结果:108913836 一亿条数据,无语。 不干了,明天再说吧。 python 模块化 处理大文件 tsv csv 标签:就是 怎么 https 很多 read get tab 指标 老师 原文地址:https://www.cnblogs.com/wanghaolu/p/13179744.html编程婴儿又在编程。
1.打开tsv文件
uspatentcitation=pd.read_csv(‘F:/1/uspatentcitation.tsv‘, sep=‘\t‘, nrows=2,usecols=[‘patent_id‘, ‘citation_id‘, ‘date‘])
nrows=2 #就是打开前两行看一下,我想知道这个数据里有什么指标,是否有一些指标不需要。
usecols=[‘patent_id‘, ‘citation_id‘, ‘date‘] #只取其中三列看看
参考:https://blog.csdn.net/shuihupo/article/details/85283240#pandas%E5%8F%82%E6%95%B0%E8%AF%B4%E6%98%8E2.看看文件有多少行
with open(‘F:/1/uspatentcitation.tsv‘, ‘rb‘) as f:
print(len(f.readlines()))
path1 = ‘F:/1/uspatentcitation.tsv‘
file1 = open(path1)
uspatentcitation = pd.read_csv(path1, sep=‘\t‘,usecols=[‘patent_id‘, ‘citation_id‘, ‘date‘], iterator=True)
count = 0
loop = True
while loop:
try:
user = uspatentcitation.get_chunk(100000)
count += user.shape[0]
except StopIteration:
break
print(count)
3.决定模块化匹配,并统计
上一篇:创建线程