pandas.errors.InvalidIndexError: Reindexing only valid with uniquely valued Index objects(删除重复的列名)

1、 需要分别查看行索引和列索引网上很多方法是重置行索引,有可能还是无法解决问题,原因是可能是列索引存在重复的情况

2、重置行索引办法

df.reset_index(drop=True, inplace=True)

3、重置列索引方法df.columns查看重复的列,然后删除重复列即可

利用pandas的concat方法报错如下 :

Traceback (most recent call last):
  File "E:\价格v1.1 .py", line 357, in
    getAllProduct()
  File "E:\价格v1.1 .py", line 120, in getAllProduct
    df3 = ji(hebing_df)
  File "E:\价格v1.1 .py", line 157, in ji
    df2 = pd.concat(df_list)
  File "D:\Python310\lib\site-packages\pandas\util\_decorators.py", line 311, in wrapper
    return func(*args, **kwargs)
  File "D:\Python310\lib\site-packages\pandas\core\reshape\concat.py", line 360, in concat
    return op.get_result()
  File "D:\Python310\lib\site-packages\pandas\core\reshape\concat.py", line 591, in get_result
    indexers[ax] = obj_labels.get_indexer(new_labels)
  File "D:\Python310\lib\site-packages\pandas\core\indexes\base.py", line 3721, in get_indexer
    raise InvalidIndexError(self._requires_unique_msg)
pandas.errors.InvalidIndexError: Reindexing only valid with uniquely valued Index objects

利用pandas的concat方法可以对多个DataFrame进行快捷的堆叠,非常方便,但是在使用concat会出现”pandas.errors.InvalidIndexError: Reindexing only valid with uniquely valued Index objects
“的提示,翻译过来就是:使用pandas对df进行concat操作时,相应的行、列索引必须唯一

问题原因
索引由于特殊操作存在重复的情况

解决办法

import pandas as pd

df=pd.read_table(fname)

列名为:

Time, Time Relative, N2, Time, Time Relative, H2, etc...

所有时间和时间相关列都包含相同的数据。我想要:

Time, Time Relative, N2, H2

我试图删除的所有尝试,如:

df=df.T.drop_duplicates().T

导致唯一值索引错误:

Reindexing only valid with uniquely valued index objects

解决:

df = df.loc[:,~df.columns.duplicated()]

工作原理:

假设数据帧的列是 ['alpha','beta','alpha']

df.columns.duplicated()为每列返回一个布尔数组:a TrueFalse。如果是 False,那么列名在这一点上是唯一的,如果是 True,那么列名在前面是重复的。例如,使用给定的示例,返回值将是 [False,False,True]

Pandas允许使用布尔值进行索引,从而只选择 True值。因为我们想保留未重叠的列,所以需要翻转上面的布尔数组(即 [True, True, False] = ~[False,False,True]

最后, df.loc[:,[True,True,False]]使用上述索引功能只选择不重复的列。

注意:上面只检查列名称, 不检查列值。

Original: https://blog.csdn.net/Ghjkku/article/details/124637343
Author: 追风少年?
Title: pandas.errors.InvalidIndexError: Reindexing only valid with uniquely valued Index objects(删除重复的列名)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/693075/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球