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

Python中读取CSV文件时随Test Name变化保留Percent列首个重复值的实现方法

解决CSV中按Test Name保留Percent列首次重复值的问题

嘿,我明白你的需求啦——要在Test Name切换的时候,让Percent列只保留每个测试组里第一次出现的重复值,其他重复的清空但不删掉整行对吧?用Python的pandas库就能轻松搞定,下面是具体步骤和代码:

实现思路

核心逻辑是按Test Name分组,在每个分组内对Percent列做去重处理:只保留该组内第一次出现的数值,后续重复的数值替换为空(或者NaN,看你需求),这样既不会删除任何行,又能达到你要的展示效果。

代码示例

假设你的CSV文件名为test_data.csv,可以用以下代码处理:

import pandas as pd

# 读取原始CSV文件
df = pd.read_csv('test_data.csv')

# 按Test Name分组,处理Percent列:仅保留每组内首次出现的值,重复项设为空字符串
df['Percent'] = df.groupby('Test Name')['Percent'].transform(
    lambda x: x.where(~x.duplicated(), '')
)

# 保存处理后的结果到新CSV
df.to_csv('processed_test_data.csv', index=False)

代码解释

  • groupby('Test Name'):把数据按测试名称分成一个个独立的组,确保我们只在同一个Test Name范围内处理重复值。
  • transform:这个方法会让处理后的结果和原DataFrame的行数保持一致,不会打乱原有行的顺序。
  • x.where(~x.duplicated(), ''):x.duplicated()会标记出该组内重复的行(第一次出现的为False,后续重复为True),~取反后,我们用where把重复的行替换为空字符串。如果你想保留NaN(适合后续数值计算),把''换成pd.NA即可。

效果示例

比如你的原始数据是:

Test NamePercentOther Column
Test A50%Data 1
Test A50%Data 2
Test A75%Data 3
Test B50%Data 4
Test B50%Data 5

处理后会变成:

Test NamePercentOther Column
Test A50%Data 1
Test AData 2
Test A75%Data 3
Test B50%Data 4
Test BData 5

完全符合你要的效果哦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 01:27:32