New*_*kid 2 python sorting dataframe pandas
我是熊猫的新手,正在编程环境中使用表格数据。我已经按特定的列对数据框进行了排序,但是熊猫吐出来的答案并不完全正确。
这是我使用的代码:
league_dataframe.sort_values('overall_league_position')
Run Code Online (Sandbox Code Playgroud)
排序方法在“总体联赛排名”列中产生值的结果未按升序或顺序进行排序,这是该方法的默认设置。
我究竟做错了什么?谢谢你的耐心!
无论出于何种原因,您似乎都在使用一列字符串,并且sort_values正在向您返回经过分类的结果。
这是一个例子。
df = pd.DataFrame({"Col": ['1', '2', '3', '10', '20', '19']})
df
Col
0 1
1 2
2 3
3 10
4 20
5 19
df.sort_values('Col')
Col
0 1
3 10
5 19
1 2
4 20
2 3
Run Code Online (Sandbox Code Playgroud)
补救措施是使用.astype或将其转换为数字pd.to_numeric。
df.Col = df.Col.astype(float)
Run Code Online (Sandbox Code Playgroud)
要么,
df.Col = pd.to_numeric(df.Col, errors='coerce')
Run Code Online (Sandbox Code Playgroud)
df.sort_values('Col')
Col
0 1
1 2
2 3
3 10
5 19
4 20
Run Code Online (Sandbox Code Playgroud)
唯一的区别是b / w astype,pd.to_numeric后者在处理非数字字符串方面更为健壮(它们被强制转换为NaN),并且在不需要强制浮点运算的情况下将尝试保留整数(如本例所示) 。