我正在尝试同时读取和处理一系列csv文件,并将输出合并到单个pandas dataframe中以进行进一步处理。
我的工作流程包括3个步骤:
通过读取一系列csv文件(具有相同的结构)创建一系列pandas dataframe
def loadcsv(filename): df = pd.read_csv(filename) return df
为每个dataframe创建一个新列,通过处理2个现有列来实现
def makegeom(a,b): return 'Point(%s %s)' % (a,b)
def applygeom(df): df['Geom']= df.apply(lambda row: makegeom(row['Easting'], row['Northing']), axis=1) return df
将所有dataframe连接成一个单独的dataframe
frames = [] for i in csvtest: df = applygeom(loadcsv(i)) frames.append(df) mergedresult1 = pd.concat(frames)
我制作了一个简单的笔记本来复制我正在做的事情:
https://gist.github.com/epifanio/72a48ca970a4291b293851ad29eadb50
我的问题是...使用dask完成我的用例的正确方法是什么?
makegeom
函数,用自定义的numpy
代码(速度更快)替换了apply
。现在我正在处理一个新笔记本。我的计划是先学习一些关于队列和进程之间的“共享对象”,然后了解如何使用dask和分布式。 - epifanio