相关疑难解决方法(0)

将函数应用于Dask中的分组数据框:如何在函数中将分组的Dataframe指定为参数?

我有一个dask dataframe按索引(first_name)分组.

import pandas as pd
import numpy as np

from multiprocessing import cpu_count

from dask import dataframe as dd
from dask.multiprocessing import get 
from dask.distributed import Client


NCORES = cpu_count()
client = Client()

entities = pd.DataFrame({'first_name':['Jake','John','Danae','Beatriz', 'Jacke', 'Jon'],'last_name': ['Del Toro', 'Foster', 'Smith', 'Patterson', 'Toro', 'Froster'], 'ID':['X','U','X','Y', '12','13']})

df = dd.from_pandas(entities, npartitions=NCORES)
df = client.persist(df.set_index('first_name'))
Run Code Online (Sandbox Code Playgroud)

(显然entities在现实生活中有几千行)

我想将用户定义的函数应用于每个分组的数据帧.我想将每一行与组中的所有其他行进行比较(类似于Pandas将每行与数据帧中的所有行进行比较,并将结果保存在每行的列表中).

以下是我尝试应用的功能:

def contraster(x, DF):
    matches = DF.apply(lambda row: fuzz.partial_ratio(row['last_name'], x) >= 50, axis …
Run Code Online (Sandbox Code Playgroud)

python pandas dask

19
推荐指数
2
解决办法
1159
查看次数

使用多个函数在groupby.agg中传递参数

任何人都知道如何在具有多个函数的groupby.agg()中传递参数?

底线,我想用自定义函数中使用它,但我会用一个内置的功能需要一个参数问我的问题.

假设:

import pandas as pd
import numpy as np
import datetime
np.random.seed(15)
day = datetime.date.today()
day_1 = datetime.date.today() - datetime.timedelta(1)
day_2 = datetime.date.today() - datetime.timedelta(2)
day_3 = datetime.date.today() - datetime.timedelta(3)
ticker_date = [('fi', day), ('fi', day_1), ('fi', day_2), ('fi', day_3),
               ('di', day), ('di', day_1), ('di', day_2), ('di', day_3)]
index_df = pd.MultiIndex.from_tuples(ticker_date, names=['lvl_1', 'lvl_2'])
df = pd.DataFrame(np.random.rand(8), index_df, ['value'])
Run Code Online (Sandbox Code Playgroud)

我该怎么做:

df.groupby('lvl_1').agg(['min','max','quantile'])
Run Code Online (Sandbox Code Playgroud)

有,作为'分位数'的论据:

q = 0.22 
Run Code Online (Sandbox Code Playgroud)

python group-by aggregate pandas

4
推荐指数
1
解决办法
1071
查看次数

标签 统计

pandas ×2

python ×2

aggregate ×1

dask ×1

group-by ×1