Python 数据分析之逐块读取文本的实现
简介
在 Python 数据分析的过程中,往往需要读取大量的数据,但是完整一次读取的话可能会导致内存崩溃或者其他问题。因此,逐块读取文本是一种非常有效的方式。本文介绍了如何使用 Python 逐块读取文本。
实现
- 使用 Python 内置的
open()
函数打开文件,并使用with
语句打开文件,这样可以保证文件操作在结束之后能够自动关闭文件。
with open('file.txt') as f:
# 文件操作
- 通过循环读取文件中的内容,并控制每次读取的行数。这里我们定义了一个
chunksize
表示每块的大小,避免一次读取太多,导致内存崩溃。
chunksize = 1000
with open('file.txt') as f:
while True:
chunk = f.readlines(chunksize)
if not chunk:
break
# 对读取的 chunk 进行操作
- 操作完成后,释放系统内存
del chunk
示例
以下为两个示例,演示如何按照逐块读取文本的方式进行文本分析。
示例 1
import pandas as pd
#create an empty dataframe to append to
results = pd.DataFrame()
#iteratively append to the results array
for chunk in pd.read_csv('file.csv', chunksize=10000):
#manipulate each chunk and append the result-set
chunk_result = chunk[chunk['column_name'] >= some_value]
results = results.append(chunk_result)
#preview the results
print(results.head())
示例 2
import numpy as np
#iterate through a large dataset
chunk_size = 1000
data = pd.read_csv('data.csv', chunksize=chunk_size)
#prepare an empty list to hold results
results = []
#iteratively append rows to our list
for chunk in data:
for row in chunk.iterrows():
#dummy manipulation of the data
node = np.sqrt(row[1]['column_1']) * row[1]['column_2']
results.append(node)
#preview our results
print(results[:10])
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 数据分析之逐块读取文本的实现 - Python技术站