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

Posted

技术标签:

【中文标题】如何在熊猫中设置第一列和第一行作为索引?【英文标题】:How to set in pandas the first column and row as index? 【发布时间】:2016-08-05 01:15:56 【问题描述】:

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

如果我在内存中有 pandas 数据框,我该怎么做?我怎么能说将第一行也用作索引?第一列和第一行是字符串,矩阵的其余部分是整数。

【问题讨论】:

对不起,你在set_index之后吗?这会将一列设置为行的索引,您必须直接覆盖索引df.index = df.iloc[0].values 请注意,行长度需要与您的 df 中的当前行数相匹配 谢谢 EdChum,您的回答对我帮助很大。就我而言,它不是 df.index,而是 df.columns。对于我需要使用 set_index 的行。谢谢。 @Oli 可能值得留下答案,因为您尚未接受任何当前答案? 【参考方案1】:

也许试试 set_index()?

df = df.set_index([2])

【讨论】:

set_index 需要列标签。如果您的第三列有名称,这将引发 KeyError 为了完整起见:如果列有非数字索引,则必须将数字替换为所述非数字索引,例如,df = df.set_index(['two' ])。【参考方案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 中删除该行。

【讨论】:

【参考方案3】:

不管有多少行,你都可以试试这个

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

【讨论】:

这其实是最简单的解决方案。 同意,这是使用 CSV 文件时的最佳解决方案 问题已经提到了这一点,并专门要求内存中的DataFrames。【参考方案4】:

也许可以试试df = pd.read_csv(header = 0)

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于如何在熊猫中设置第一列和第一行作为索引?的主要内容,如果未能解决你的问题,请参考以下文章

css让表格第一列和第一行固定

react-native-table-component 冻结可滚动表中的第一列和第一行

在R中如何输出矩阵,第一列和第二列的数为指定数字

怎样在一条sql语句中将第一列和第二列加和的值作为第三列的值

如何在for和if循环中获取spark scala数据帧的最后一行的第一列值

如何使用 XlsxWriter 冻结第一行和第一列?