如何在pandas中设置第一列和第一行作为索引?

65 人关注

当我读入CSV时,我可以说 pd.read_csv('my.csv', index_col=3) ,它将第三列设置为索引。

如果我在内存中有一个pandas数据框架,我怎么能做同样的事情呢?我怎么能说把第一行也作为一个索引呢?第一列和第一行是字符串,矩阵的其他部分是整数。

3 个评论
对不起,你是在寻找 set_index 吗? 这将设置一个列作为行的索引,你必须直接覆盖索引 df.index = df.iloc[0].values 注意,行的长度需要与你的DF中的当前行数相匹配。
Oli
谢谢你EdChum,你的回答对我帮助很大。在我的例子中,不是df.index的问题,而是df.columns的问题。而对于行,我需要使用set_index。谢谢你。
@Oli 也许值得留下答案,因为你没有接受目前的任何答案?
python
python-3.x
pandas
Oli
Oli
发布于 2016-04-14
4 个回答
Y. Yazarel
Y. Yazarel
发布于 2021-09-14
已采纳
0 人赞同

无论有多少行,你都可以尝试这样做

df = pd.read_csv('data.csv', index_col=0)
    
ling
这实际上是最简单的解决方案。
同意,这是使用CSV文件时的最佳解决方案。
问题中已经提到了这一点,并特别要求在内存中的DataFrames。
villasv
villasv
发布于 2021-09-14
0 人赞同

使第一列(或第n列)成为索引,以递增的动词顺序。

df.set_index(list(df)[0])
df.set_index(df.columns[0])
df.set_index(df.columns.tolist()[0])

使第一(或第n)行成为索引。

df.set_index(df.iloc[0].values)

如果你想要一个多层次的索引,你可以同时使用。

df.set_index([df.iloc[0], df.columns[0]])

请注意,使用列作为索引会自动将其作为列删除。使用行作为索引只是一个复制操作,不会从DataFrame中删除该行。

Annie Guo
Annie Guo
发布于 2021-09-14
0 人赞同

也许可以试试set_index()?