先介绍一下博主的文件大小:1.6G,是一个零和1文档,共42万行,2千多列
需要解决问题是:去除所有为零的行,去除所有为零的列
首先,去除所有为零的行比较容易,因为一行行读,不占多大内存。
下面是去除行都为零的代码:
with open(r"C:\Users\xilu\Desktop\newdata.txt",'a') as wfile:
with open(r'C:\Users\xilu\Desktop\42wRow.txt','r') as rfile:
for line in rfile:
mline = line.strip()
if mline == '': #有些是空行
continue
else:
b = [int(i) for i in mline.split('\t')]
if any(b[1:]):
wfile.write(line)通过上面代码将原始数据所有为零的行除去,其他写入新的文件newdata.txt中。
然后,解决去除所有为零的列就相对不容易,因为每列要42万行,并且python中没有按列读取文件的函数(目前自己没有搜索到),所以只能分块读,并且还要写入全不为零的列。因此要判断newdata.txt 文件中是否每列不都是零,是的话,去除,然后再写入。
下面是去除列都为零的代码:
import pandas as pd
chunker = pd.read_cs