Pandas 为什么要更改数据帧的索引名?

Pandas 为什么要更改数据帧的索引名?,pandas,Pandas,使用另一个名称作为数据帧/系列的索引有什么好处吗?如果我使用df[index\u name],它就不起作用了。熊猫有一个例子,索引有名称,但在切片或选择数据时根本不使用名称。如果不打印数据框,更改索引名有什么用?在某些情况下,您可以从列创建索引。在这些情况下,在新版本的Pandas(我相信是0.22和更高版本)中,Pandas将索引命名为与复制列相同的名称。然后,当您尝试执行某些操作时,两者可能会发生冲突,从我在Pandas 0.24中看到的情况来看,您无法操作数据帧(即sort_值('colu

使用另一个名称作为数据帧/系列的索引有什么好处吗?如果我使用
df[index\u name]
,它就不起作用了。熊猫有一个例子,索引有名称,但在切片或选择数据时根本不使用名称。如果不打印数据框,更改索引名有什么用?

在某些情况下,您可以从列创建索引。在这些情况下,在新版本的Pandas(我相信是0.22和更高版本)中,Pandas将索引命名为与复制列相同的名称。然后,当您尝试执行某些操作时,两者可能会发生冲突,从我在Pandas 0.24中看到的情况来看,您无法操作数据帧(即sort_值('columnname_sameas_indexname')。这对我来说确实是一个相当大的问题,因为我有许多从一列创建的索引,现在我更新到了0.24,我的代码失败了(在我开始重命名所有这些该死的索引之前…

您可以在groupby语句中使用索引名称,从而使代码更可读。例如,.df.groupby('IndexName')…vs.df.groupby(level=1)…还有一些其他语句允许使用索引名和索引级别号,因此提高了代码的可读性。@ScottBoston
df.groupby('IndexName')
将尝试在一列上使用
'IndexName'
进行分组,但“是”
df.groupby(level='IndexName'))
将是更具可读性的形式,也许是命名indices@EdChum
df=df.set_index('id')
df.groupby('id')['value1'].sum()
确实有效。在Pandas 0.23.0@ScottBoston-hmm中,文档似乎表明
by
应该引用列,
标签或标签列表可以通过self中的列传递给group。
有趣的是,这也适用于索引name@EdChum这是Pandas 0.20.0中的groupby增强更新