¿Cómo cambio un solo valor de índice en el dataframe de pandas?

energy.loc['Republic of Korea'] 

Quiero cambiar el valor del índice de ‘República de Corea’ a ‘Corea del Sur’. Pero el dataframe es demasiado grande y no es posible cambiar cada valor de índice. ¿Cómo cambio solo este único valor?

Quieres hacer algo como esto:

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

Básicamente, obtiene el índice como una lista, cambia ese elemento y reemplaza el índice existente.

La solución de @EchChum se ve bien. Aquí hay uno que usa renombrar, que reemplazaría todos estos valores en el índice.

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

Aquí un ejemplo

 >>> 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 

Aquí hay otra buena, usando reemplazar en la columna.

 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) 

Si tiene MultiIndex DataFrame, haga esto:

 # input DataFrame import pandas as pd t = pd.DataFrame(data={'i1':[0,0,0,0,1,1,1,1,2,2,2,2], 'i2':[0,1,2,3,0,1,2,3,0,1,2,3], 'x':[1.,2.,3.,4.,5.,6.,7.,8.,9.,10.,11.,12.]}) t.set_index(['i1','i2'], inplace=True) t.sort_index(inplace=True) # changes index level 'i1' values 0 to -1 t.rename(index={0:-1}, level='i1', inplace=True) 

Aquí hay otra idea basada en set_value

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