首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在解析的csv块上应用多个条件以获得多个输出?

如何在解析的csv块上应用多个条件以获得多个输出?
EN

Stack Overflow用户
提问于 2020-02-25 00:59:29
回答 1查看 29关注 0票数 0

dask新手,感谢您的帮助!基本上,我从540个csv文件中读取csv文件(从RAM中读取)&每次我读取csv时,我都会应用2个过滤条件来获得2个输出文件,尽管dask正在做它的工作,但对于相同的块,它花费了两倍的时间。我怎样才能为此写出一个高效的代码呢?

代码语言:javascript
复制
pricing_data = dd.read_csv(os.path.join('Selection Tool', 'prc_data','original','*.csv'),dtype={'BENCHMARK YIELD': 'object',
       'BID YIELD': 'object','SPREAD': 'object'},parse_dates=['PRICING DATE'],assume_missing=True,low_memory=False)

pricing_data['Running_Month_ISIN'] = pricing_data['PRICING DATE'].apply(lambda x: x.strftime('%m%Y'), meta=('PRICING DATE', 'object')) + pricing_data['ISIN']
pricing_data['ISIN_PRICING_DATE'] = pricing_data['ISIN'] + pricing_data['PRICING DATE'].dt.strftime('%Y%m%d').astype(str)  # master pricing data 
pricing_data['PRICING_DATE_ISIN'] = pricing_data['PRICING DATE'].dt.strftime('%Y%m%d').astype(str) + pricing_data['ISIN'] 
prc_output2 = pricing_data[pricing_data.PRICING_DATE_ISIN.isin(matching_list_2)].compute()
prc_output1 = pricing_data[pricing_data.Running_Month_ISIN.isin(matching_list_1)].compute()
EN

回答 1

Stack Overflow用户

发布于 2020-05-22 21:37:17

来自the documentation

在单个dask.compute()调用中使用共享计算的

计算相关结果

这允许Dask只计算一次计算的共享部分(如上面的dd.read_csv调用),而不是每次计算调用一次。

所以在你的例子中:

代码语言:javascript
复制
dask_prc_output2 = pricing_data[pricing_data.PRICING_DATE_ISIN.isin(matching_list_2)]
dask_prc_output1 = pricing_data[pricing_data.Running_Month_ISIN.isin(matching_list_1)]
prc_output1, prc_output2 = dask.compute(dask_prc_output1, dask_prc_output2)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60380656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档