相关疑难解决方法(0)

Python Pandas:使用Arguments将多个函数传递给agg()

我正在努力弄清楚如何为pandas的dataframe.agg()功能组合两种不同的语法.拿这个简单的数据框:

df = pd.DataFrame({'A': ['group1', 'group1', 'group2', 'group2', 'group3', 'group3'],
                   'B': [10, 12, 10, 25, 10, 12],
                   'C': [100, 102, 100, 250, 100, 102]})

>>> df
[output]
        A   B    C
0  group1  10  100
1  group1  12  102
2  group2  10  100
3  group2  25  250
4  group3  10  100
5  group3  12  102
Run Code Online (Sandbox Code Playgroud)

我知道你可以发送两个函数agg()并获得一个新的数据框,其中每个函数都应用于每一列:

df.groupby('A').agg([np.mean, np.std])

[output]
           B                C            
        mean        std  mean         std
A                                        
group1  11.0   1.414214   101    1.414214
group2  17.5  10.606602   175  106.066017
group3 …
Run Code Online (Sandbox Code Playgroud)

python pandas

11
推荐指数
1
解决办法
3209
查看次数

所有的callables都有__name__吗?

我有一个装饰器,记录装饰功能的名称(以及其他内容).

访问__name__装饰函数的属性是否安全?或者是否有一些可调用的类型没有我尚未遇到的名称?

python

10
推荐指数
2
解决办法
1472
查看次数

Python Pandas:将参数传递给agg()中的函数

我试图通过使用不同类型的函数和参数值来减少pandas数据框中的数据.但是,我没有设法更改聚合函数中的默认参数.这是一个例子:

>>> df = pd.DataFrame({'x': [1,np.nan,2,1],
...                    'y': ['a','a','b','b']})
>>> df
     x  y
0  1.0  a
1  NaN  a
2  2.0  b
3  1.0  b
Run Code Online (Sandbox Code Playgroud)

这是一个聚合函数,我想测试它的不同值b:

>>> def translate_mean(x, b=10):
...   y = [elem + b for elem in x]
...   return np.mean(y)
Run Code Online (Sandbox Code Playgroud)

在下面的代码中,我可以使用此函数的默认b值,但我想传递其他值:

>>> df.groupby('y').agg(translate_mean)
      x
y
a   NaN
b  11.5
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

python group-by aggregate pandas

5
推荐指数
3
解决办法
3762
查看次数

标签 统计

python ×3

pandas ×2

aggregate ×1

group-by ×1