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

如何使用Pandas DataFrame按规则计算测试用例剩余计数

测试用例剩余量计算问题解决

需求说明

基于给定的Pandas DataFrame计算测试用例剩余数量,规则如下:

  • 第一行:用测试用例总数(示例为80)减去该行的Count值
  • 后续每行:用上一行的计算结果减去当前行的Count值

输入数据

DateCount
17-10-202220
18-10-202218
19-10-202215
20-10-202210
21-10-20225

现有代码

import pandas as pd

df['Date'] = pd.to_datetime(df['Date'])
edate = df['Date'].max().strftime('%Y-%m-%d')
sdate = df['Date'].min().strftime('%Y-%m-%d')
df['Date'] = pd.to_datetime(df['Date']).apply(lambda x: x.date())
df=df.groupby(['Date'])['Date'].count().reset_index(name='count')
df['result'] = Test_case - df['count'].iloc[0]
df['result'] = df['result'] - df['count'].shift(1)

当前输出

Datecountresult
2022-10-1720NaN
2022-10-181840.0

期望输出

DateCountResult
17-10-20222060(80-20) (80为测试用例总数示例)
18-10-20221842(60-18)
19-10-20221527(42-15)
20-10-20221017(27-10)
21-10-2022512(17-5)

修正后的代码

import pandas as pd

# 定义测试用例总数
TEST_CASE_TOTAL = 80

# 构造输入DataFrame(实际使用时可替换为读取数据源)
data = {
    'Date': ['17-10-2022', '18-10-2022', '19-10-2022', '20-10-2022', '21-10-2022'],
    'Count': [20, 18, 15, 10, 5]
}
df = pd.DataFrame(data)

# 保留原日期格式显示
df['Date'] = pd.to_datetime(df['Date'], format='%d-%m-%Y').dt.strftime('%d-%m-%Y')

# 计算剩余测试用例数值
remaining = [TEST_CASE_TOTAL - df['Count'].iloc[0]]
for idx in range(1, len(df)):
    remaining.append(remaining[idx-1] - df['Count'].iloc[idx])
df['Remaining_Value'] = remaining

# 生成带计算说明的Result列
df['Result'] = df.apply(
    lambda row: f"{row['Remaining_Value']}({row['Remaining_Value'] + row['Count']}-{row['Count']})",
    axis=1
)
# 为第一行添加总数说明
df.loc[0, 'Result'] += ' (80为测试用例总数示例)'

# 调整列顺序并输出结果
final_df = df[['Date', 'Count', 'Result']]
print(final_df)

代码说明

  1. 日期格式处理:转换日期时保留原dd-mm-yyyy格式,避免输出为标准ISO日期格式
  2. 剩余量计算:通过循环逐行计算,严格遵循需求规则,确保第一行用总数减当日Count,后续行用上一行剩余值减当日Count
  3. Result列生成:拼接剩余数值与计算逻辑说明,第一行额外标注测试用例总数示例
  4. 列顺序调整:匹配期望输出的列排列顺序

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 22:05:27