Python-优化文件解析
我正在从事一个项目,该项目涉及存储在Python-优化文件解析,python,python-2.7,file,parsing,optimization,Python,Python 2.7,File,Parsing,Optimization,我正在从事一个项目,该项目涉及存储在.txt文件中的大数据。我的程序运行有点慢。我认为这样做的一个原因是我的程序以一种无效的方式解析文件 文件示例: X | Y | Weight -------------- 1 1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 def _parse(pathToFile): with open(pathToFile) as f: my
.txt
文件中的大数据。我的程序运行有点慢。我认为这样做的一个原因是我的程序以一种无效的方式解析文件
文件示例:
X | Y | Weight
--------------
1 1 1
1 2 1
1 3 1
1 4 1
1 5 1
1 6 1
1 7 1
1 8 1
1 9 1
1 10 1
def _parse(pathToFile):
with open(pathToFile) as f:
myList = []
for line in f:
s = line.split()
x, y, w = [int(v) for v in s]
obj = CoresetPoint(x, y, w)
myList.append(obj)
return myList
解析器代码:
X | Y | Weight
--------------
1 1 1
1 2 1
1 3 1
1 4 1
1 5 1
1 6 1
1 7 1
1 8 1
1 9 1
1 10 1
def _parse(pathToFile):
with open(pathToFile) as f:
myList = []
for line in f:
s = line.split()
x, y, w = [int(v) for v in s]
obj = CoresetPoint(x, y, w)
myList.append(obj)
return myList
这个函数被调用NumberOfRows/N
次,因为我只解析一小段要处理的数据,直到没有行为止。我的.txt
是几兆字节
很明显,我在循环中迭代了NumberOfLines
次,这是一个巨大的瓶颈,而且很糟糕。这就引出了我的问题:
问题:
解析文件的正确方法是什么,最有效的方法是什么,以及如何在
.txt
中以不同的方式组织数据?如果是这样,我应该如何在文件中组织数据?在Python中,您有一个名为Pandas的库来执行此操作。通过以下方式导入熊猫数据:
import pandas as pd
df = pd.read_csv('<pathToFile>.txt')
将熊猫作为pd导入
df=pd.read_csv('.txt'))
如果文件太大,无法全部加载到内存中,可以循环部分数据,一次加载一个。这是一篇很好的博客文章,可以帮助你做到这一点。我不能把整个文件都放在主内存中,因为它太大了,这不会把它放到主内存中吗?是的,这会把它放到内存中。它有多大?如果你真的需要,那么你应该进入分布式的领域,比如Spark的RDD,但这需要一些时间。对数据进行采样怎么样?看看这个问题:,您可以循环部分数据,这样就不会一次将所有数据加载到内存中。