如何更改pandas数据帧中的单个索引值?

2024-06-28 19:49:28 发布

您现在位置:Python中文网/ 问答频道 /正文

energy.loc['Republic of Korea']

我想把索引的值从'Republic of Korea'改为'South Korea'。 但数据帧太大,不可能更改每个索引值。如何仅更改此单个值?


Tags: of数据locenergysouthkorearepublic
3条回答

这是另一个很好的方法,在列上使用replace

df.reset_index(inplace=True)
df.drop('index', axis = 1, inplace=True)
df["Country"].replace("Republic of Korea", value="South Korea", inplace=True)
df.set_index("Country", inplace=True)

你想这样做:

as_list = df.index.tolist()
idx = as_list.index('Republic of Korea')
as_list[idx] = 'South Korea'
df.index = as_list

基本上,您可以将索引作为一个列表,更改该元素,然后替换现有索引。

@EdChum的解决方案看起来不错。 这里有一个使用rename,它将替换索引中的所有这些值。

energy.rename(index={'Republic of Korea':'South Korea'},inplace=True)

这里有一个例子

>>> example = pd.DataFrame({'key1' : ['a','a','a','b','a','b'],
           'data1' : [1,2,2,3,nan,4],
           'data2' : list('abcdef')})
>>> example.set_index('key1',inplace=True)
>>> example
      data1 data2
key1             
a       1.0     a
a       2.0     b
a       2.0     c
b       3.0     d
a       NaN     e
b       4.0     f

>>> example.rename(index={'a':'c'}) # can also use inplace=True
      data1 data2
key1             
c       1.0     a
c       2.0     b
c       2.0     c
b       3.0     d
c       NaN     e
b       4.0     f

相关问题 更多 >