所以我将4个csv导入并合并到一个名为data的数据帧中。但是,在使用以下方法检查数据框的索引时
index_series = pd.Series(data.index.values)
index_series.value_counts()
我看到多个索引条目有4个计数。我想完全重新索引数据数据框,因此每行现在都有一个唯一的索引值。我试过了:
data.reindex(np.arange(len(data)))
给出了错误" ValueError:无法从重复轴重新索引。"谷歌搜索让我认为这个错误是因为最多有4行共享相同的索引值。知道如何在不丢弃任何行的情况下重新编制索引吗?我并不特别关心行的顺序,因为我总是可以对它进行排序。
更新: 所以最后我确实找到了一种像我想要的那样重新索引的方法。
data['index'] = np.arange(len(data))
data = data.set_index('index')
据我了解,我刚刚添加了一个名为' index'到我的数据框,然后将该列设置为我的索引。 至于我的csv,它们是下载贷款数据的四个csv"在this page of Lending Club loan stats。
答案 0 :(得分:7)
使用此示例数据复制错误非常容易:
In [92]: data = pd.DataFrame( [33,55,88,22], columns=['x'], index=[0,0,1,2] )
In [93]: data.index.is_unique
Out[93]: False
In [94:] data.reindex(np.arange(len(data))) # same error message
问题是因为reindex
需要唯一的索引值。在这种情况下,您不想保留旧的索引值,只需要新的索引值是唯一的。最简单的方法是:
In [95]: data.reset_index(drop=True)
Out[72]:
x
0 33
1 55
2 88
3 22
请注意,如果要保留旧索引值,可以不使用drop=True
。