如何将列表设置为现有 Pandas 数据帧的索引?

4

我有一个已经存在的Pandas数据框,看起来像这样:

    Gr          R           B           Gb
0   1.537037    1.733333    1.400000    1.537037
1   1.657952    1.706522    1.650407    1.713024
2   1.670982    1.690476    1.626263    1.661202
3   1.689229    1.683761    1.607143    1.676923
...

我有一个单独的列表,其中列表的长度等于上述数据框中的行数。如下所示:

separate_list = ['a','b','c',....]

如何使单独的列表成为上述数据框的索引,替换默认索引(0,1,2,...)?我能找到的都是将现有列设置为索引的方法。

谢谢。


4
所以您想将0、1、2替换为a、b、c...吗?df.index = separate_list有帮助吗? - thushv89
是的,但实际上这些值不是a、b、c...。 - wookiekim
那么它们是什么? - thushv89
我认为那不重要...这些值可以是任何东西,它们与数据框具有相同的长度。我只想将整个列表适配进去。 - wookiekim
1
读取第一个评论。那应该可以工作。 - thushv89
4个回答

5

只需将列表作为DataFrame的一列 (df['new_index'] = separate_list),然后将其设置为索引即可。


2

1

Dataframe.set_index()可以帮助你完成相同的操作。 对于你的示例,代码如下:

DF = pd.DataFrame(#Your Dataframe)
DF.set_index(keys=separate_list)

0

假设您的 pandas.DataFrame 名称为 DF,并且 index_list 是一个与 DF 行数相同的平面列表,类似于 index_list = [0,1,2,3,4,5,6,...]

DF.set_index(keys = [index_list])

会做的。请注意,在这种情况下,index_list 必须用方括号括起来。

或者,如果 index_list = [[0,1,2,3,4,5,6,...]],您应该使用:

DF.set_index(keys = index_list)

现在不需要将其括起来,就像Shah上面的例子一样。


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