Pandas DataFrame重新索引列问题

3
我已经试图弄清楚这个问题几个小时了...
我有一个列表,我想将其用作数据帧的列:
totalColumns = [a, b, c, d, e, f.....z]

我有几个长这样的数据框:
数据框一:
    b   f   j
1   12  5   6
2   4   99  2
3   10  77  16

数据帧二:

    a   k   y
1   2   25  46
2   7   54  76
3   34  67  101
4   45  24  54

“和更多的...”
“我想根据totalColumns重新索引所有数据框。例如,重新索引后,DataFrameOne将如下所示:”
“DataFrameOne:”
    a    b   c......f.....j......z
1   NaN  5   NaN....5.....6......NaN
2   NaN  99  NaN....99....2......NaN
3   NaN  77  NaN....77....16.....NaN

所以我使用了reindex方法:
DataFrameOne.reindex(columns=totalColumns)

它适用于某些数据框,但对于某些数据框,我会遇到这个异常:
raise Exception('Reindexing only valid with uniquely valued Index '
Exception: Reindexing only valid with uniquely valued Index objects

有人可以帮助我解决出现在某些数据框中的这个错误吗?
1个回答

3

您的两个数据框中是否有重复的列?如果是,请尝试解决这个问题,使得两个数据框中的列名唯一,并再次执行reindex操作。


啊,我觉得那可能是问题所在。我该如何将具有相同标签的两列合并在一起,并根据各自的行索引求和它们的数字? - WonderSteve
我很好奇:你是如何在DataFrames中创建重复列的?我只能通过在totalColumns列表中有重复的列名称来复现你的错误... - meteore
最初,我的所有列名都是唯一的字符串ID,但后来我需要将每个唯一的ID更改为日期(仍然以字符串格式),作为列标签。其中一些列ID对应于相同的日期。我使用了dataframe.columns = list来编写新的列标签。 - WonderSteve
2
尝试使用 df.groupby(axis=1, level=0).sum() 对具有相同名称的列进行分组求和。 - Wes McKinney
“Exception: Reindexing only valid with uniquely valued Index objects”这种形式的重新索引错误在执行merge()操作时,如果存在重复的列,同样也会出现。上面的评论非常有帮助。 - BBSysDyn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接