我是新手,所以您能帮我吗? 我有一个这样的csv文件:
id,popularity,hashtag,seen
0,100,#footbal,0
1,200,#2017,0
2,300,#1,0
我以某种方式设法获得了一个令人迷惑的数据框hashtags_to_update
:
id seen
0 118
2 136
我想将hashtags_to_update
中的数据与csv文件中的数据合并以获取:
id,popularity,hashtag,seen
0,100,#footbal,118
1,200,#2017,0
2,300,#1,136
现在我正在做以下事情
hashtags_df = dd.read_csv('path/to/csv/file').set_index('id')
hashtags_df["seen"] = hashtags_df["seen"].add(hashtags_to_update["seen"], fill_value=0).astype('int64')
hashtags_df.compute().to_csv('output.csv', sep=',')
但是据我所知,当数据包含转换为python对象的字符串时会出现一些问题,因此不会由于GIL而产生并行性。
有什么可以建议我做的吗?预先谢谢你。
答案 0 :(得分:1)
您可以使用多重处理(从而避免使用GIL)。
有几种方法:
设置客户端(默认情况下,它将确保多处理):
from dask.distributed import Client
client = Client()
或
import dask.multiprocessing
dask.config.set(scheduler='processes') # overwrite default with multiprocessing scheduler
根据文档推荐使用前者。
更多信息: