sort_value 处理名称列而不处理数据框中的数字列

sort_value working on Name column but not Number column in dataframe

当尝试按 "Number" 列对我的数据框进行排序时,我得到了错误代码

1708 # Check for duplicates

KeyError: 'Number'

数据框看起来像这样

Number Name City Sex

3 Jay A M

1 Marry A F

5 John B M

数字为int64,其余为对象

df.sort_values(by=['Number']) --> error

df.sort_values(by=['Name']) --> works

df.sort_values(by=['City']) --> error

df.sort_values(by=['Sex']) --> works

我要找的是这样的东西

Number Name City Sex

  1 Marry A F

  3 Jay A M

  5 John B M

我尝试制作一个像您一样的 DataFrame 并对其进行排序 & 它可以按 Number 列排序:

df=pd.DataFrame({'Number':[3,1,5],
                'Name':['Jay','Marry','John'],
                'City':['A','A','B'],
                'Sex':['M','F','M']})
print(df)
print(df.Number.dtype)
df=df.sort_values(by=['Number'])
print(df)

输出:

   Number   Name City Sex
0       3    Jay    A   M
1       1  Marry    A   F
2       5   John    B   M

int64

   Number   Name City Sex
1       1  Marry    A   F
0       3    Jay    A   M
2       5   John    B   M

可能你的栏目里有一个白色的space,排序前试试这个:

df.columns=df.columns.str.strip()