python聚合函数详解_Python(数据分析篇)--- Pandas框架【三】进阶操作,分组函数,聚合函数,表格合并等...

import numpy as np

import pandas as pd

一、时间模块处理

place_order_time = data['place_order_time'].astype('str')

1. 将字符串类型转成标准时间格式

data['place_order_time'] = pd.to_datetime(place_order_time)

print(data['place_order_time'].head())

输出:

0 2016-08-01 11:05:36

1 2016-08-01 11:07:07

2 2016-08-01 11:07:40

3 2016-08-01 11:11:11

4 2016-08-01 11:11:30

Name: place_order_time, dtype: datetime64[ns]

2. 时间类型提取

ser.dt常用时间属性:

year/month/day/hour/minute/second/date

data['year'] = data['place_order_time'].dt.year

data['place_order_time'].dt.week.head() # 一年的第几周

0 31

1 31

2 31

3 31

4 31

Name: place_order_time, dtype: int64

3. 时间运算

(1)标准时间加减运算

time1 = data['place_order_time'].head()

# 两个时间表的索引不同时无法进行运算

time2 = data['place_order_time'].tail().reset_index()['place_order_time'] # 重置索引,但会生成新的一列来保留原来的索引,

print(time2-time1)

0 9 days 10:50:48

1 9 days 10:49:41

2 9 days 10:54:12

3 9 days 10:52:47

4 9 days 10:53:00

Name: place_order_time, dtype: timedelta64[ns]

(2)整体+时间戳

# 往后平移一天

data['place_order_time']+pd.Timedelta(days=1)

# 往后平移一小时

(data['place_order_time']+pd.Timedelta(hours=1)).head()

0 2016-08-01 12:05:36

1 2016-08-01 12:07:07

2 2016-08-01 12:07:40

3 2016-08-01 12:11:11

4 2016-08-01 12:11:30

Name: place_order_time, dtype: datetime64[ns]

<
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PandasPython中一个非常常用的数据分析库,其中的groupby()函数可以对数据进行分组聚合操作,该函数支持多种聚合函数,包括sum()、mean()、count()、max()、min()等,也支持自定义聚合函数。 以下是一个更加详细的Pandas分组聚合操作的例子: ``` import pandas as pd import numpy as np # 创建一个DataFrame数据 df = pd.DataFrame({ 'key1': ['a', 'a', 'b', 'b', 'a', 'b', 'a', 'b'], 'key2': ['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two'], 'data1': np.random.randn(8), 'data2': np.random.randn(8) }) # 对数据按照'key1'列进行分组,并对每组数据的'data1'列进行求和操作 grouped = df.groupby('key1') result = grouped['data1'].sum() # 输出结果 print(result) ``` 输出结果为: ``` key1 a 0.976359 b -0.902755 Name: data1, dtype: float64 ``` 表示对数据按照'key1'列进行分组,并对每组数据的'data1'列进行求和操作。 以下是一个更加复杂的分组聚合操作的例子: ``` import pandas as pd import numpy as np # 创建一个DataFrame数据 df = pd.DataFrame({ 'key1': ['a', 'a', 'b', 'b', 'a', 'b', 'a', 'b'], 'key2': ['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two'], 'data1': np.random.randn(8), 'data2': np.random.randn(8) }) # 对数据按照'key1'列和'key2'列进行分组,并对每组数据的'data1'列进行求和和求均值操作 grouped = df.groupby(['key1', 'key2']) result = grouped.agg({'data1': ['sum', 'mean']}) # 输出结果 print(result) ``` 输出结果为: ``` data1 sum mean key1 key2 a one -0.139849 -0.069925 two 1.557208 0.778604 b one -0.537986 -0.537986 two -0.364769 -0.182384 ``` 表示对数据按照'key1'列和'key2'列进行分组,并对每组数据的'data1'列进行求和和求均值操作。 除了使用Pandas内置的聚合函数外,也可以自定义聚合函数。以下是一个自定义聚合函数的例子: ``` import pandas as pd import numpy as np # 创建一个DataFrame数据 df = pd.DataFrame({ 'key1': ['a', 'a', 'b', 'b', 'a', 'b', 'a', 'b'], 'key2': ['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two'], 'data1': np.random.randn(8), 'data2': np.random.randn(8) }) # 自定义聚合函数 def peak_to_peak(arr): return arr.max() - arr.min() # 对数据按照'key1'列进行分组,并对每组数据的'data1'列进行自定义聚合函数操作 grouped = df.groupby('key1') result = grouped['data1'].agg(peak_to_peak) # 输出结果 print(result) ``` 输出结果为: ``` key1 a 1.426003 b 0.664204 Name: data1, dtype: float64 ``` 表示对数据按照'key1'列进行分组,并对每组数据的'data1'列进行自定义聚合函数操作,该自定义函数计算每组数据的最大值和最小值之差。 希望这些例子可以帮助您更好地了解Pandas分组聚合操作

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值