1.读取txt文件为csv格式
df = pd.read_csv(file, header=None)
2.将csv格式转化为parquet
df.to_parquet(fout_path)
df= pd.read_parquet(fin_path)
3.读取csv文件时memory error
pd.read_csv读取大文件时,如果文件太大,会出现memoryerror的问题。
方法1
pd.read_csv的参数中有一个chunksize参数,为其赋值后,返回一个可迭代对象TextFileReader,对其遍历即可
reader = pd.read_csv(file_path, chunksize=20) # 每次读取20条数据
import pandas as pd
def knn():
# 读取数据
file_path = './facebook/train.csv'
reader = pd.read_csv(file_path, chunksize=20) # 每块为20条数据(index)
for chunk in reader:
print(chunk) #chunk格式是<class 'pandas.core.frame.DataFrame'>
break
if __name__ == '__main__':
knn()
方法2
pd.read_csv的参数中有一个iterator参数,默认为False,将其改为True,返回一个可迭代对象TextFileReader,使用它的get_chunk(num)方法可获得前num行的数据
import pandas as pd
def knn():
'''完成k近邻算法'''
# 读取数据
file_path = './facebook/train.csv'
reader = pd.read_csv(file_path, iterator=True)
chunk = reader.get_chunk(5) # 获取前5行数据
print(chunk)
if __name__ == '__main__':
knn()