我正在从Pandas切换到Dask,并希望在数据帧上执行条件选择。我想提供一个条件列表,最好是布尔数组/序列,然后得到一个应用了所有这些条件的数据帧。 在Pandas中,我只是做了np.all(BoolSeries1,BoolSeries2,...)并将结果应用于数据帧。 import dask.array as da
import dask.dataframe as dd
import numpy as np
import pandas as pd
df = pd.DataFrame({'A' : np.random.rand(1000) , 'B':
我尝试在Dask数据帧的多个分区上运行一个函数。该代码需要解压元组,并且可以很好地与Pandas一起工作,但不能与Dask map_partitions一起工作。数据对应于元组列表,其中列表的长度可以变化,但元组始终具有已知的固定长度。
import dask.dataframe as dd
import pandas as pd
def func(df):
for index, row in df.iterrows():
tuples = row['A']
for t in tuples:
x, y = t
当我使用dask和pandas运行像这样的循环时(见下文),只有列表中的最后一个字段会被求值。这大概是因为“懒惰评估”。
import pandas as pd
import dask.dataframe as ddf
df_dask = ddf.from_pandas(df, npartitions=16)
for field in fields:
df_dask["column__{field}".format(field=field)] = df_dask["column"].apply(lambda _: [__ for __ in _ if
我可以使用以下代码按列对Pandas数据进行离散化:
import numpy as np
import pandas as pd
def discretize(X, n_scale=1):
for c in X.columns:
loc = X[c].median()
# median absolute deviation of the column
scale = mad(X[c])
bins = [-np.inf, loc - (scale * n_scale),
loc +
我有一个dask dataframe,它有一个类型为int64的列"is_internal“。我想将其更新为类似于SQL case语句: CASE WHEN ltrim(rtrim(is_internal)) = '1' then 'Internal' else 'External' END as type 将数据导入为: import pandas as pd
import dask.dataframe as dd
import time
t=time.process_time()
df_train = dd.read_csv(r
我正在尝试用dask HashingVectorizer来向量化dask.dataframe。我希望向量化结果留在集群(分布式系统)中。这就是为什么我在尝试转换数据时使用client.persist的原因。但出于某种原因,我得到了下面的错误。
Traceback (most recent call last):
File "/home/dodzilla/my_project/components_with_adapter/vectorizers/base_vectorizer.py", line 112, in hybrid_feature_vectorizer
C
我使用pandas写了一个函数来对数据进行下采样,但是我的一些数据集不适合内存,所以我想用dask尝试一下,这是我现在拥有的工作代码: def sample_df(df,target_column = "target",positive_percentage = 35,index_col="index"):
"""
Takes as input a data frame with imbalanced records, e.g. x% of positive cases, and returns
a datafr
我在使用dask系列对象做任何有用的事情时遇到了麻烦。在我设法创建了一个之后,我不能在比序列对象本身更低的级别上使用它。换句话说,我可以计算它并将其加载到内存中,然后获得我想要的数据(dseries.compute()['x']),但理想情况下我希望是这样的:dseries['x'].compute(),因为对于我的实际应用程序来说,dseries.compute()对于内存来说可能太大了。 import numpy as np
import pandas as pd
import dask.dataframe as ddf
import random
fo
如何从应用于Dask系列的函数中返回多个值?我试图从dask.Series.apply的每一次迭代中返回一个系列,最后的结果是一个dask.DataFrame。
下面的代码告诉我元数据是错误的。然而,全熊猫版本起作用了。这里怎么了?
更新:--我认为我没有正确地指定元/模式。我该如何正确地做这件事?现在,当我放弃元参数时,它就起作用了。然而,它提出了一个警告。我想用达斯克“正确”。
import dask.dataframe as dd
import pandas as pd
import numpy as np
from sklearn import datasets
iris = dat
基于在上收到的答复,我编写了一个ETL过程,如下所示:
import pandas as pd
from dask import delayed
from dask import dataframe as dd
def preprocess_files(filename):
"""Reads file, collects metadata and identifies lines not containing data.
"""
...
return filename, metadata, skiprows
d