Python自定义分组的两种方式及自定义函数

Python常用的分组方式,一种pivot_table,一种groupby

自定义函数,df_series(x)用来对某一列去重拼接,df_len(x)用来对某一列去重计数,前提目标列必须是字符串。

def df_series(x):
    return ','.join(set(x))
def df_len(x):
    return len(set(x))
pivot_table 方法
pd.pivot_table(data,index='商户名',values=['交易金额','付款方'],aggfunc=[{'商户名':np.sum,'付款方':[df_series,df_len]}])
groupby() 方法
data.groupby(["商户名"])['交易金额','付款方'].agg({'交易金额':np.sum,'付款方':[df_series,df_len]})
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,你需要将时间列转换为 pandas 中的 datetime 类型。可以使用 `pandas.to_datetime()` 函数将字符串或 Unix 时间戳转换为 datetime。 接下来,你可以使用 `pandas.Grouper` 对数据进行分组。`Grouper` 可以基于时间列对数据进行分组,并且可以按照自定义的时间间隔进行分组。 以下是一个示例代码: ```python import pandas as pd # 读取数据 df = pd.read_csv('data.csv') # 将时间列转换为 datetime df['time'] = pd.to_datetime(df['time']) # 按小时分组 hourly_groups = df.groupby(pd.Grouper(key='time', freq='H')) # 按天分组 daily_groups = df.groupby(pd.Grouper(key='time', freq='D')) ``` 在上面的代码中,我们首先使用 `pd.to_datetime()` 函数将时间列转换为 datetime 类型。然后,我们使用 `pd.Grouper` 对数据进行分组。`pd.Grouper` 的 `key` 参数指定要分组的列,`freq` 参数指定时间间隔。在上面的示例中,我们使用 `'H'` 表示按小时分组,使用 `'D'` 表示按天分组。 你可以根据自己的需求调整时间间隔。例如,如果你想按分钟分组,可以使用 `'T'`,如果你想按周分组,可以使用 `'W'`。 分组后,你可以对每个分组执行聚合操作,例如计算平均值、求和等等。例如,以下代码计算每天的总销售额: ```python daily_sales = df.groupby(pd.Grouper(key='time', freq='D'))['sales'].sum() ``` 上面的代码中,我们首先按天分组,然后使用 `['sales'].sum()` 计算每天的总销售额。 希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值