gpt4 book ai didi

python - 将系列拆分为大于阈值的段并将统计信息应用于段

转载 作者:行者123 更新时间:2023-12-01 09:03:25 28 4
gpt4 key购买 nike

我有一个系列 x,其值为 yz。我想获取 x 段的集合,其中 y 大于 0.5。在这个段上,我想计算两个统计数据:以 x 为单位的段长度和段上 z 的平均值。我想丢弃 y 等于或小于 0.5 的所有数据。对于 pandas 来说,最优雅的方式是什么?

import numpy as np
import pandas as pd

x = np.arange(0, 100, 0.1)
y = np.sin(x) + 0.5*np.sin(0.5*x)
z = np.random.rand(x.size)

df = pd.DataFrame(data=np.stack((x,y), axis=-1), index=x, columns=['y','z'])

# Fetch all x segments for which y is larger than 0.5. Discard others.
# Calculate segment length in units of x.
# Compute mean of z per segment.

最佳答案

选择值:

df = df[df['y'] > 0.5]

发现新分割:

df['is_new_segment'] = df.reset_index()['index'].diff() > 0.15

段数:

df['segment'] = df['is_new_segment'].cumsum()

按分割进行分组并应用您的函数(例如,这里的mean):

df.groupby('segment')['z'].mean()

关于python - 将系列拆分为大于阈值的段并将统计信息应用于段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52274265/

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