python - 替换 pandas 多索引数据框中的重复值

标签 python pandas dataframe

我尝试替换 panda 数据框中的值,如下所示 Table

多索引数据框具有以下列:

MultiIndex([(  'Name',       ''),
            ('Link',       ''),
            (        'Category',       ''),
            (        'Id', ''),
            (        'Score',    'Min'),
            (        'Score',    'Normal'),
            (        'Score',    'Max'),
            (        'Result',    'Min'),
            (        'Result',    'Max'),
            (           'Result',       ''),
            (         'Pass',       '')],

如果 A、B、C 和 D 重复,我希望将其替换为空格

我尝试过使用 df.loc[df.duplicate(subset=['Name']),['Name']]='' 但我认为它不适用于多索引数据框,因为它给了我 KeyError: Index(['Name'], dtype='object')

我期望数据框会像这样 expected result

最佳答案

首先选择列,然后使用重复项

for c in ('Name', 'Category'):
    df.loc[df[c].duplicated(), c] = ''

  Name Link Category
                    
0    A    -        C
1         -         
2    B    -        D
3         -         

关于python - 替换 pandas 多索引数据框中的重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76197263/

相关文章:

python - 按列条件计算的 DataFrame 列

python - Pandas df groupby 并申请

python - 在 Pandas 中计算同现的更好方法

python - 如果 df1 中的工作表名称与字符串值匹配,我如何将 df2 复制到 df1

python - Pandas Groupby 对特定列进行聚合函数,显示结果中的所有列

python - 如何用 Pandas 进行条件采样?

python - 如何使用 str.replace 清理列的每一行

python - 使用 Elixir 执行 sql 查询

python - 多索引数据透视表的 Pandas 减法

python - 根据组的频率计数添加新列