2017-12-20 11 views
0

プログラミング環境では、パンダの新機能と表形式のデータを扱うのが初めてです。特定の列でデータフレームをソートしましたが、パンダが吐き出す答えは正確ではありません。 sortメソッドは、列の全体的なリーグの位置 "の値が得られ、昇順またはメソッドのデフォルトである順序でソートされていないことを数字列のパンダデータフレームソート値が予期しない結果になる

league_dataframe.sort_values('overall_league_position') 

結果:ここで

は、私が使用しているコードです。

enter image description here

私が間違って何をしているのですか?お待ち頂きまして、ありがとうございます!

+1

画像ではなく、質問に直接コードを貼り付けてください。 {}ボタンを使用すると、正しくフォーマットできます。これも出力用に行う必要があります。 – Craig

+1

それは弦の列なので、その理由があります。 –

答えて

1

何らかの理由で文字列で作業しているようで、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 

救済はどちらか.astypeまたはpd.to_numericを使用して、数値に変換することです。

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 

/astypeワットとpd.to_numeric B唯一の違いは、後者が(彼らはNaNに強制変換している非数値文字列を処理でより堅牢であることです

df.Col = df.Col.astype(float) 

あるいは、 )、floatへの強制が必要でない場合(この場合のように)、整数を保持しようとします。

+0

ありがとうございました。 Upvoted答えが、私は初心者ですので、公に表示されたポストスコアを変更しません。 – Newkid

+0

@Newkid答えが役に立つと聞いてよかったです。それが役立っていることを示すためにも[回答を受け入れる](https://stackoverflow.com/help/someone-answers)が可能です。 –