我期待将指数名称'Juan Gonzalez'重命名为'Jason','Jorge Sanchez'重命名为'George',将'Miguel Sanz'重命名为'Michael'
age height(cm) weight(kg)
People
Juan Gonzalez 22 181 60
Jorge Sanchez 34 190 84
Miguel Sanz 50 166 59
我认为它在重命名列时有效:
df.rename(columns={,,}, inplace=True)
然而,当我尝试
时df.rename(index={'Juan Gonzalez':'Jason','Jorge Sanchez':'George','Miguel Sanz':'Michael'}, inplace=True)
它不起作用,它返回具有相同索引名称的相同数据帧
答案 0 :(得分:2)
索引值似乎有一些空格。
要删除它,请使用strip
:
df.index = df.index.str.strip()
或者将参数skipinitialspace=True
添加到read_csv
。
样品:
import pandas as pd
from pandas.compat import StringIO
temp=u"""People,age height(cm),weight(kg)
Juan Gonzalez,22,181,60
Jorge Sanchez,34,190,84
Miguel Sanz,50,166,59"""
#after testing replace 'StringIO(temp)' to 'filename.csv'
df = pd.read_csv(StringIO(temp), skipinitialspace=True)
print (df)
People age height(cm) weight(kg)
Juan Gonzalez 22 181 60
Jorge Sanchez 34 190 84
Miguel Sanz 50 166 59
print (df.index)
Index(['Juan Gonzalez', 'Jorge Sanchez', 'Miguel Sanz'], dtype='object')
d = {'Juan Gonzalez':'Jason','Jorge Sanchez':'George','Miguel Sanz':'Michael'}
df.rename(index=d, inplace=True)
print (df)
People age height(cm) weight(kg)
Jason 22 181 60
George 34 190 84
Michael 50 166 59
import pandas as pd
from pandas.compat import StringIO
temp=u"""People,age height(cm),weight(kg)
Juan Gonzalez,22,181,60
Jorge Sanchez,34,190,84
Miguel Sanz,50,166,59"""
#after testing replace 'StringIO(temp)' to 'filename.csv'
df = pd.read_csv(StringIO(temp))
print (df)
People age height(cm) weight(kg)
Juan Gonzalez 22 181 60
Jorge Sanchez 34 190 84
Miguel Sanz 50 166 59
print (df.index)
Index([' Juan Gonzalez', ' Jorge Sanchez', 'Miguel Sanz'], dtype='object')
df.index = df.index.str.strip()
print (df.index)
Index(['Juan Gonzalez', 'Jorge Sanchez', 'Miguel Sanz'], dtype='object')
d = {'Juan Gonzalez':'Jason','Jorge Sanchez':'George','Miguel Sanz':'Michael'}
df.rename(index=d, inplace=True)
print (df)
People age height(cm) weight(kg)
Jason 22 181 60
George 34 190 84
Michael 50 166 59