Python | to_period()和agg()函数

今天学习Python,学到了两个很好用的函数:to_period()和agg()

to_period()是提取时间的函数,可以按年、月、日等。

agg()是对数据做聚合操作,可以按意愿填写想要的聚合函数,比如min, max, median等。

具体怎么用还是看例子吧,一清二楚。


  1. 首先导入库,并建立一个获取一段时间的函数。

import numpy as np
import pandas as pd
import datetime

def getDateList(start_date, end_date):
    date_list = []
    start_date = datetime.datetime.strptime(start_date, '%Y-%m-%d')
    end_date = datetime.datetime.strptime(end_date, '%Y-%m-%d')
    date_list.append(start_date.strftime('%Y-%m-%d'))
    while start_date < end_date:
        start_date += datetime.timedelta(days=1)
        date_list.append(start_date.strftime('%Y-%m-%d'))
    return date_list
  1. 构造一个数据框,包含日期和次数两列。

date_list = getDateList("2021-10-15","2022-02-15")
rndint = np.random.randint(1, 100, len(date_list))
df = pd.DataFrame(np.c_[date_list, rndint], columns=['DATE', 'CNT'])
df.head()
  1. 更改两列的数据格式,DATE列改为datetime,CNT列改为int。

df['DATE'] = pd.to_datetime(df['DATE'])
df['CNT'] = df['CNT'].astype(int)
df.info()
  1. 将DATE列设为索引。

df_new = df.set_index('DATE', drop=True)
df_new.head()
  1. 基于to_period()和groupby()函数按 日 聚合。(按日聚合其实就是原始数据)

df_new.groupby(df_new.index.to_period("D")).mean()
  1. 基于to_period()和groupby()函数按 周 聚合。

df_new.groupby(df_new.index.to_period("W")).mean()
  1. 基于to_period()和groupby()函数按 月 聚合。

df_new.groupby(df_new.index.to_period("M")).mean()
  1. 基于to_period()和groupby()函数按 年 聚合。(Y改为A也可以)

df_new.groupby(df_new.index.to_period("Y")).mean()
  1. 基于agg()函数求最大值、最小值、平均值等。

df_new.groupby(df_new.index.to_period("M")).agg(['min','max','mean','std','median'])

最后,欢迎大家关注我的WX公众号:且听数据说,更多内容与你分享,期待相遇。

以下是一个简单的数据分析案例,使用PythonPandas库: 假设我们有一个包含销售数据的csv文件,文件名为'sales_data.csv',其中包含列:日期、产品、销售数量、销售额。 我们想要进行一些数据分析,例如: 1. 每个产品的总销售量总销售额。 2. 每个月的总销售量总销售额。 3. 最受欢迎的产品是哪个? 以下是使用PythonPandas进行数据分析的代码: ```python import pandas as pd # 读取csv文件 df = pd.read_csv('sales_data.csv') # 每个产品的总销售量总销售额 total_sales = df.groupby('产品').agg({'销售数量': 'sum', '销售额': 'sum'}) print(total_sales) # 每个月的总销售量总销售额 df['日期'] = pd.to_datetime(df['日期']) # 将日期转换为datetime类型 df['月份'] = df['日期'].dt.to_period('M') # 新增一列月份 monthly_sales = df.groupby('月份').agg({'销售数量': 'sum', '销售额': 'sum'}) print(monthly_sales) # 最受欢迎的产品是哪个? popular_product = df.groupby('产品').agg({'销售数量': 'sum'}).idxmax().values[0] print(f'The most popular product is {popular_product}.') ``` 这个案例演示了如何使用PythonPandas来对数据进行分析。Pandas是一个强大的数据分析库,提供了许多用于数据操作分析的函数方法。在这个案例中,我们使用groupby函数对数据进行分组聚合,以查找每个产品的总销售量总销售额,每个月的总销售量总销售额,以及最受欢迎的产品。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值