我是Pandas的新手,在编程环境中使用表格数据。我已按特定列对数据框进行了排序,但熊猫吐出的答案并不完全正确。
以下是我使用的代码:
league_dataframe.sort_values('overall_league_position')
排序方法在列'整体联赛位置'中产生值的结果不按升序或顺序排序,这是该方法的默认值。
我做错了什么?谢谢你的耐心等待!
答案 0 :(得分:2)
无论出于何种原因,您似乎正在使用一列字符串,而sort_values
会返回一个lexsorted结果。
这是一个例子。
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
解决方法是使用.astype
或pd.to_numeric
将其转换为数字。
df.Col = df.Col.astype(float)
或者,
df.Col = pd.to_numeric(df.Col, errors='coerce')
df.sort_values('Col')
Col
0 1
1 2
2 3
3 10
5 19
4 20
b / w astype
和pd.to_numeric
的唯一区别在于后者在处理非数字字符串时更加健壮(它们被强制为NaN
),并将尝试如果不需要强制浮动,则保留整数(如本例所示)。