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

时间:2016-04-13 18:43:15

标签: python python-3.x pandas

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

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

4 个答案:

答案 0 :(得分:6)

也许尝试set_index()?

df = df.set_index([2])

答案 1 :(得分:2)

按照详细程度从高到低的顺序将第一列(或第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中删除该行。

答案 2 :(得分:2)

无论行数如何,您都可以尝试

df = pd.read_csv('data.csv',index_col = 0)

答案 3 :(得分:-1)

要将第一列设置为索引,您可以尝试:

x2csv <- rbindlist(lapply(files, fread, stringsAsFactors = FALSE), fill = TRUE, idcol = TRUE )