草庐IT

python - 如何有效地在 dask 中使用 pandas.cut() (或等效的)?

Dask中是否有等同于pandas.cut()的函数?我尝试在Python中对大型数据集进行分箱和分组。它是具有属性(positionX,positionY,能量,时间)的测量电子列表。我需要将它沿着positionX、positionY进行分组,并按能量类别进行装箱。到目前为止,我可以用pandas做到这一点,但我想并行运行它。所以,我尝试使用dask。groupby方法非常有效,但不幸的是,我在尝试bin能量数据时遇到了困难。我找到了一个使用pandas.cut()的解决方案,但它需要在原始数据集上调用compute()(将其本质上转换为非并行代码)。在dask中是否有等同于pan

python - 我可以在 Dask/Distributed 中使用从 .py 文件导入的函数吗?

我有一个关于序列化和导入的问题。函数应该有自己的导入吗?likeI'veseendonewithPySpark以下是完全错误的吗?mod.py是否需要是conda/pip包?mod.py已写入共享文件系统。In[1]:fromdistributedimportExecutorIn[2]:e=Executor('127.0.0.1:8786')In[3]:eOut[3]:In[4]:importsocketIn[5]:e.run(socket.gethostname)Out[5]:{'172.20.12.7:53405':'n1015','172.20.12.8:53779':'n101

python - dask 数据框应用元

我想对dask数据帧的单个列进行频率计数。代码有效,但我收到warning提示meta未定义。如果我尝试定义meta,我会得到一个错误AttributeError:'DataFrame'objecthasnoattribute'name'。对于这个特定的用例,我似乎不需要定义meta,但我想知道如何定义以供将来引用。虚拟数据框和列频率importpandasaspdfromdaskimportdataframeasdddf=pd.DataFrame([['Sam','Alex','David','Sarah','Alice','Sam','Anna'],['Sam','David','

python - pandas df.loc[z,x]=y 如何提高速度?

我已经确定了一个pandas命令timeseries.loc[z,x]=y负责一次迭代中花费的大部分时间。现在我正在寻找更好的方法来加速它。循环甚至不包括50k个元素(生产目标是~250k或更多),但已经需要20秒了。这是我的代码(忽略上半部分,它只是计时助手)defpopulateTimeseriesTable(df,observable,timeseries):"""Gothroughallrowsofdfandputtheobservableintothetimeseriesatcorrectrow(symbol),column(tsMean)."""print"len(df.i

python - 如何在 df.iterrows() 期间删除 Pandas 数据框中的当前行

我想在迭代期间删除当前行-使用df.iterrows(),如果它的特定列在我的if条件下失败。例如forindex,rowindf:ifrow['A']==0:#remove/dropthisrowfromthedfdeldf[index]#Itriedthisbutitgivesmeanerror这可能是一件非常简单的事情,但我仍然不知道该怎么做。非常感谢您的帮助! 最佳答案 我不知道这是不是伪代码但是你不能像这样删除一行,你可以drop它:In[425]:df=pd.DataFrame({'a':np.random.randn(

python - 我应该如何获得 dask 数据框的形状?

执行.shape时出现以下错误。AttributeError:'DataFrame'objecthasnoattribute'shape'我应该如何获取形状? 最佳答案 可以直接获取列数len(df.columns)#thisisfast您也可以在数据帧本身上调用len,但请注意这会触发计算。len(df)#thisrequiresafullscanofthedataDask.dataframe在不先读取所有数据的情况下不知道数据中有多少条记录。 关于python-我应该如何获得dask

python - 如何为默认的 dask 调度程序指定线程/进程数

有没有办法限制默认线程调度程序(使用dask数据帧时的默认值)使用的内核数量?使用compute,您可以使用以下方式指定它:df.compute(get=dask.threaded.get,num_workers=20)但我想知道是否有办法将它设置为默认值,这样您就不需要为每个compute调用指定它?例如,在小型集群(例如64核)的情况下会很有趣,但它与其他人共享(没有工作系统),而且我不想在开始时占用所有核心用dask计算。 最佳答案 你可以指定一个默认的ThreadPoolfrommultiprocessing.poolimp

python - Dask 的默认 pip 安装给出 "ImportError: No module named toolz"

我安装了Dask像这样使用pip:pipinstalldask当我尝试执行importdask.dataframeasdd时,我收到以下错误消息:>>>importdask.dataframeasddTraceback(mostrecentcalllast):File"",line1,inFile"/path/to/venv/lib/python2.7/site-packages/dask/__init__.py",line5,infrom.asyncimportget_syncasgetFile"/path/to/venv/lib/python2.7/site-packages/da

python - 如何在单线程中运行 dask.distributed 集群?

如何在单个线程中运行完整的Dask.distributed集群?我想用它来调试或分析。注意:这是一个常见问题。我将这里的问题和答案添加到StackOverflow以供将来重用。 最佳答案 本地调度器如果您可以使用单机调度程序的API(只是计算),那么您可以使用单线程调度程序x.compute(scheduler='single-threaded')分布式调度器-单机如果你想在单台机器上运行dask.distributed集群,你可以不带参数启动客户端fromdask.distributedimportClientclient=Cli

python - 在 pandas df 中查找 timedelta 对象的均值和标准差

我想通过dataframe计算银行timedelta的mean和standarddeviation如下所示的两列。当我运行代码(也如下所示)时,出现以下错误:pandas.core.base.DataError:Nonumerictypestoaggregate我的数据框:bankdiffBankofJapan0days00:00:57.416000ReserveBankofAustralia0days00:00:21.452000ReserveBankofNewZealand55days12:39:32.269000U.S.FederalReserve8days13:27:11.38