如何在 MultiIndex pandas DataFrame 中设置索引值?

3
我有一个MultiIndex pandas DataFrame并需要更改级别0索引的值。当前的DataFrame具有名为(test,time)的MultiIndex。
如何将索引顶层中的字符串“Test 4”设置为其他字符串?
对于额外的分数,我的许多数据框将在索引的test级别中具有多个值。我可以使用名称列表一次重命名多个吗?
谢谢您的任何帮助。

enter image description here

我的数据是:
test      time     force  displacement  minutes  event
'Test 4'  0.0000   .1202   0            0.00000  False
'Test 4'  0.0012   .0901   0            0.00002  False
'Test 4'  0.0018   .0901   0            0.00003  False
'Test 4'  0.0030   .0901   0            0.00004  False
'Test 4'  0.0042   .0901   0            0.00005  False
'Test 5'  0.0000   .1203   0            0.00000  False
'Test 5'  0.0012   .0901   0            0.00002  False

使用多重索引集合设置为['test', 'time']
2个回答

6
你可以传递一个字典到 rename 方法中,以重命名任何索引中的特定值。
df.rename(index={'Test4':'something else'})

似乎也适用于多级索引,即 df.rename(columns={'My value',:'My new value'}, inplace=True)(当您不想麻烦地创建一个新的 df 时需要使用后者)。 - JC_CL

3

首先,不要发布没有数据的图片?

其次:

df.index.set_levels(['Test4'], level=0, inplace=True)

完美。对于这个图片我很抱歉——我尝试使用 Markdown 表格,但似乎没有渲染出来,因此不知道如何以良好的方式展示数据。如果有其他问题使用了合适的标记语言,请指出让我能够查看学习。谢谢。 - blokeley
1
@blokeley 最好的方法是提供生成示例的代码。第二种方法是将 CSV 粘贴到问题中。您的示例很小,这可以轻松完成。如果没有它,我会给您一个没有经过验证演示的抱歉答案。 - piRSquared
如果test索引中有多个值,这种方法并不是很有效。 - Ted Petrou
因此,将数据发布出去非常重要。你仍然可以这样做。我不会花时间为你创建它。它就在你面前。你只需要将其复制粘贴到你的帖子中。有了它,我可以更完整地向你展示该怎么做。 - piRSquared
如果test索引中有一个以上的值,它可以正常工作 - 只需将新名称添加到列表中即可。 - blokeley

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