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

为DataFrame重复索引添加后缀,解决合并时的重复轴报错问题

Fixing "cannot reindex from a duplicate axis" by making indices unique with suffixes

Hey there, that error crops up because your DataFrame has duplicate indices—and when merging, Pandas can’t reliably align rows when there are duplicates in the axis you’re using to join. Let’s fix this by adding sequential suffixes to those duplicate indices to make them unique, just like you want.

Step 1: Reproduce your original DataFrame

First, let’s create the DataFrame you described to work with:

import pandas as pd

# Original data with duplicate indices
data = {
    'values': [-0.029064, -0.032876, -0.040795, -0.027003, -0.0315]
}
duplicate_index = [-0.01, -0.01, -0.01, -0.02, -0.02]
df = pd.DataFrame(data, index=duplicate_index)

Step 2: Add suffixes to duplicate indices

We’ll use groupby and cumcount to track how many times each index repeats, then append that count as a suffix to all duplicates except the first occurrence:

# Get the sequential count of each index occurrence
occurrence_counts = df.groupby(df.index).cumcount()

# Create new unique index values: append count to duplicates (skip first occurrence)
new_index = (
    df.index.astype(str) 
    + occurrence_counts.where(occurrence_counts > 0, '')  # Empty string for first occurrence
).astype(float)  # Convert back to numeric type

# Update the DataFrame's index
df_unique = df.set_index(new_index)

Step 3: Verify the result

If you print df_unique, you’ll get exactly the format you wanted:

values
-0.010 -0.029064
-0.011 -0.032876
-0.012 -0.040795
-0.020 -0.027003
-0.021 -0.031500

(Note: The trailing zero on -0.010/-0.020 is just how floats display—you can format it if needed, but the index is functionally unique now.)

Why this fixes the merge error

Now that your index has no duplicates, Pandas can safely align rows when merging with another DataFrame. The "cannot reindex from a duplicate axis" error happens because Pandas can’t determine which duplicate index row should map to which row in the other DataFrame—unique indices eliminate that ambiguity.

内容的提问来源于stack exchange,提问作者thomas.mac

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:11:15