要按天分组Pandas DataFrame,可以使用groupby()
函数。然后,可以使用apply()
函数来执行每个分组的操作。以下是一个示例代码,演示如何按天分组DataFrame,并找到在固定时间点超过指定值的第一个值。
import pandas as pd
# 创建示例DataFrame
data = {'datetime': ['2022-01-01 10:00:00', '2022-01-01 11:00:00', '2022-01-02 10:00:00', '2022-01-02 11:00:00'],
'value': [5, 10, 3, 8]}
df = pd.DataFrame(data)
# 将'datetime'列转换为datetime类型
df['datetime'] = pd.to_datetime(df['datetime'])
# 按天分组DataFrame
grouped = df.groupby(df['datetime'].dt.date)
# 指定时间点
fixed_time = pd.to_datetime('2022-01-01 10:30:00')
# 定义函数来找到在固定时间点超过指定值的第一个值
def find_first_value_above(group):
above_fixed_time = group[group['datetime'] > fixed_time]
if not above_fixed_time.empty:
return above_fixed_time.iloc[0]['value']
else:
return None
# 在每个分组上应用函数
result = grouped.apply(find_first_value_above)
print(result)
输出结果:
datetime
2022-01-01 10.0
2022-01-02 8.0
dtype: float64
在这个示例中,DataFrame被按照日期分组,并且在每个分组中找到了在固定时间点超过指定值的第一个值。输出结果显示了每个日期对应的第一个符合条件的值。
上一篇:按天分组计算时间间隔内的小时数
下一篇:按天分组,但从特定小时开始