熊猫:在一个组中使用多个功能

Posted

技术标签:

【中文标题】熊猫:在一个组中使用多个功能【英文标题】:Pandas: using multiple functions in a group by 【发布时间】:2015-05-21 13:13:45 【问题描述】:

我的数据有年龄,还有每月付款。

我正在尝试汇总付款的总和,但没有汇总年龄(平均会起作用)。

是否可以对不同的列使用不同的功能?

【问题讨论】:

好的,谢谢。 -------------------------------------------------- |日期 |恢复 |年龄 | ---------------------------------------------- |一月 | 500 | 26 | |二月 | 400 | 26 | |三月 | 1000 | 26 | 【参考方案1】:

您可以pass a dictionary to agg 将列名作为键,将您想要的函数作为值。

import pandas as pd
import numpy as np

# Create some randomised data
N = 20
date_range = pd.date_range('01/01/2015', periods=N, freq='W')
df = pd.DataFrame('ages':np.arange(N), 'payments':np.arange(N)*10, index=date_range)

print(df.head())
#             ages  payments
# 2015-01-04     0         0
# 2015-01-11     1        10
# 2015-01-18     2        20
# 2015-01-25     3        30
# 2015-02-01     4        40

# Apply np.mean to the ages column and np.sum to the payments.
agg_funcs = 'ages':np.mean, 'payments':np.sum

# Groupby each individual month and then apply the funcs in agg_funcs
grouped = df.groupby(df.index.to_period('M')).agg(agg_funcs)

print(grouped)
#          ages  payments
# 2015-01   1.5        60
# 2015-02   5.5       220
# 2015-03  10.0       500
# 2015-04  14.5       580
# 2015-05  18.0       540

【讨论】:

以上是关于熊猫:在一个组中使用多个功能的主要内容,如果未能解决你的问题,请参考以下文章

熊猫:分组并根据条件在每个组中删除行

如何将*多个*功能应用于熊猫 groupby 应用?

忽略熊猫 groupby 组中的 NaN 的标准错误

如何在每个组中估算熊猫数据框中的一列[重复]

熊猫:在每组中按平均值填充缺失值

熊猫:在每组中按平均值填充缺失值