是否有内置Python/pandas函数来重命名pandas.DataFrame中的重复列?
假设我有一个数据框,其中的列具有相同的名称:是否有内置Python/pandas函数来重命名pandas.DataFrame中的重复列?,python,pandas,Python,Pandas,假设我有一个数据框,其中的列具有相同的名称: x x y 2 5 1 1 9 3 4 1 2 是否有内置的通用函数来重命名具有相同名称的列以使它们彼此不同? 可能结果的示例: x0 x1 y 2 5 1 1 9 3 4 1 2 当使用pandas.read\u csv读取csv时,它会自动执行此操作(默认为mangle\u dupe\u cols=True),但我找不到一种简便的方法对Python中已有的数据帧对象执行此操作 但是我已经找不到一个方便的方法来处理DataFra
x x y
2 5 1
1 9 3
4 1 2
是否有内置的通用函数来重命名具有相同名称的列以使它们彼此不同?
可能结果的示例:
x0 x1 y
2 5 1
1 9 3
4 1 2
当使用pandas.read\u csv读取csv时,它会自动执行此操作(默认为mangle\u dupe\u cols=True),但我找不到一种简便的方法对Python中已有的数据帧对象执行此操作
但是我已经找不到一个方便的方法来处理DataFrame对象了
对于现有的数据帧,我们必须求助于一些代码,没有内置的
s = pd.Series(df.columns)
df.columns= df.columns+s.groupby(s).cumcount().replace(0,'').astype(str)
x x1 y
0 2 5 1
1 1 9 3
2 4 1 2
是的,当发现重复名称时它会添加此解决方案似乎只起作用,因为我的示例DataFrame具有相同数量的行和列。在具有4行的数据帧上使用它会引发错误:ValueError:传递值的长度为3,索引暗示为4这会使解决方案无法概括。@Dennix更新了我的第二个解决方案,请参考,很抱歉,我接受了您的答案,但您也应该编辑或删除第一个解决方案。