当前位置: 首页 > 面试题库 >

在具有多个功能的groupby.agg中传递参数

仰经武
2023-03-14
问题内容

有谁知道如何在具有 多个 功能的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'])

我该怎么做:

df.groupby('lvl_1').agg(['min','max','quantile'])

作为“分位数”的参数:

q = 0.22

问题答案:

使用lambda功能:

q = 0.22
df1 = df.groupby('lvl_1')['value'].agg(['min','max',lambda x: x.quantile(q)])
print (df1)
            min       max  <lambda>
lvl_1                              
di     0.275401  0.530000  0.294589
fi     0.054363  0.848818  0.136555

或者可以创建f函数并将其名称设置为自定义列名称:

q = 0.22
f = lambda x: x.quantile(q)
f.__name__ = 'custom_quantile'
df1 = df.groupby('lvl_1')['value'].agg(['min','max',f])
print (df1)
            min       max  custom_quantile
lvl_1                                     
di     0.275401  0.530000         0.294589
fi     0.054363  0.848818         0.136555


 类似资料:
  • 问题内容: 我正在使用py.test来测试包装在python类MyTester中的某些DLL代码。为了进行验证,我需要在测试期间记录一些测试数据,然后再进行更多处理。由于我有许多test _…文件,因此我想在大多数测试中重用测试器对象的创建(MyTester的实例)。 由于tester对象是获得DLL变量和函数的引用的对象,因此我需要将DLL变量的列表传递给每个测试文件的tester对象(要记录的

  • 但是,当我试图将此代码更改为以下代码时,我得到了一个错误-错误:Main method,在类MyClass中找不到,请将Main method,定义为:public static void Main(string[]args)。我需要接收owner和consumerName作为我的程序的参数/输入。 ,这是怎么做到的?

  • 问题内容: 假设我有这个功能: 我想这样称呼它: 当然,不能用这种方法来完成,因为Postgres试图用该名称和三个不存在的参数来查找函数。 我试图用引号引起来,但在这种情况下,参数解释错误: data1’,’data2’,’data3 ,就像一个字符串一样。 有没有一种方法可以在参数中放置多个值,以便IN子句可以识别它? 问题答案: 您的函数将不会被创建。之后是句法废话。 无论哪种方式,带有 参

  • 问题内容: 我是Hadoop的新手。我想从mapper类的map函数中的main函数(Java程序)访问命令行参数。请提出方法。 问题答案: Hadoop 0.20引入了新的MR API,新的(oahmapreduce软件包)和旧的MR API(oahmapred)之间没有太多功能差异,只是可以使用新API在映射器和化简器中提取数据。提到Arnon的是旧的API。 查看本文以使用新旧API传递参数

  • 问题内容: 我试图弄清楚如何在URL中传递多个参数。我想将纬度和经度从我的android类传递给Java servlet。我怎样才能做到这一点? 在这种情况下,输出(写入文件)为。这是可行的,但我想在两个单独的参数中传递纬度和经度,以便减少在服务器端的工作。如果不可能,我如何至少在&之间添加一个空格,以便可以使用class获取经度和纬度。我试过以下行,但无济于事。 我的servlet代码如下: 我

  • 本文向大家介绍在 mapper 中如何传递多个参数?相关面试题,主要包含被问及在 mapper 中如何传递多个参数?时的应答技巧和注意事项,需要的朋友参考一下 1、第一种:   2、第二种:使用 \@param 注解:   然后,就可以在 xml 像下面这样使用(推荐封装为一个 map,作为单个参数传递给mapper)   3、第三种:多个参数封装成 map