You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何统计df2中Data_Value超过df1对应日期值的天数并输出结果?

解决思路与代码实现

这是一个典型的Pandas分组聚合、合并筛选任务,我来一步步帮你实现需求:

步骤1:统一日期列名

首先我们需要把两个DataFrame的日期列名称对齐,方便后续合并操作:

import pandas as pd

# 假设你已经加载了df1和df2
# 统一日期列名称为Date(df1已有该列名,只需调整df2)
df2 = df2.rename(columns={'mnth_day': 'Date'})

步骤2:计算df2中每个日期的最大Data_Value

因为df2存在同一日期多条记录的情况,我们先按日期分组,提取每个日期的最大Data_Value:

# 分组计算每日最大值,并重置索引变回DataFrame格式
df2_daily_max = df2.groupby('Date')['Data_Value'].max().reset_index()

步骤3:合并两个DataFrame并筛选符合条件的记录

将处理后的df2和df1按日期合并,然后筛选出df2最大值超过df1对应日期值的记录:

# 合并df1和df2的每日最大值,保留双方都存在的日期
merged_df = pd.merge(df1, df2_daily_max, on='Date', suffixes=('_df1', '_df2_max'))

# 筛选df2最大值大于df1对应值的行
result_df = merged_df[merged_df['Data_Value_df2_max'] > merged_df['Data_Value_df1']]

步骤4:整理输出格式并统计天数

最后调整结果的列名,同时统计符合条件的天数:

# 调整列名,只保留需要的两列
result_df = result_df[['Date', 'Data_Value_df2_max']].rename(columns={'Data_Value_df2_max': 'Data_Value'})

# 统计符合条件的天数
qualified_days_count = len(result_df)
print(f"Data_Value超过df1对应日期值的天数:{qualified_days_count}")

# 输出最终结果
print(result_df)

示例输出说明

运行上述代码后,result_df会以你期望的格式输出(示例如下,具体结果取决于你的实际数据):

Date Data_Value
0 02-25 28.9
1 10-07 30.0
...

内容的提问来源于stack exchange,提问作者Rashida

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:50:54