gpt4 book ai didi

python - 查找每个业务季度 pandas 的最大列数

转载 作者:太空宇宙 更新时间:2023-11-03 17:34:52 24 4
gpt4 key购买 nike

假设我有以下数据集

import pandas as pd, numpy, datetime

start, end = datetime.datetime(2015, 1, 1), datetime.datetime(2015, 12, 31)
date_list = pd.date_range(start, end, freq='B')
numdays = len(date_list)

value = numpy.random.normal(loc=1e3, scale=50, size=numdays)
ids = numpy.repeat([1], numdays)

test_df = pd.DataFrame({'Id': ids,
'Date': date_list,
'Value': value})

我现在想计算 test_df 每个业务季度内的最大值。一种可能性是使用 rule='BQ', how='max' 进行resample。但是,我想保留数组的结构,只生成另一个具有每个 BQ 最大值的列,你们对如何执行此操作有任何建议吗?

最佳答案

我认为以下内容应该适合您,该分组对季度进行分组,并在“值”列上调用 transform ,并将最大值作为系列返回,其索引与原始 df 对齐:

In [26]:
test_df['max'] = test_df.groupby(test_df['Date'].dt.quarter)['Value'].transform('max')
test_df
Out[26]:
Date Id Value max
0 2015-01-01 1 1005.498555 1100.197059
1 2015-01-02 1 1032.235987 1100.197059
2 2015-01-05 1 986.906171 1100.197059
3 2015-01-06 1 984.473338 1100.197059
........
256 2015-12-25 1 997.965285 1145.215837
257 2015-12-28 1 929.652812 1145.215837
258 2015-12-29 1 1086.128017 1145.215837
259 2015-12-30 1 921.663949 1145.215837
260 2015-12-31 1 938.189566 1145.215837

[261 rows x 4 columns]

关于python - 查找每个业务季度 pandas 的最大列数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31341622/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com