2017-10-07 11 views
0

私は非常に簡単です。 「 - 」いくつかのhighest_rankのenteriesがあるので、次のコード、および1整数比較のためのPandasシリーズを変換する簡単な方法

import pandas as pd 
table = pd.read_table('team_rankings.dat') 
table.head() 

rank team rating highest_rank highest_rating 
0 1 Germany 2097 1 2205  
1 2 Brazil 2086 1 2161  
2 3 Spain 2011 1 2147  
3 4 Portugal 1968 2 1991  
4 5 Argentina 1967 1 2128 

type((table['highest_rank'])) 
pandas.core.series.Series 

table.loc[(table['highest_rank']) < 2] 

のhighest_rankingを持っているすべてのチームを選択したいことは、その後私に

TypeError: unorderable types: str() < int() 

を与えます。 Urgh。この(整数)選択を行う簡単な方法は何ですか?

答えて

3

errors ='coerce'すなわち

df.loc[(pd.to_numeric(df['highest_rank'],errors='coerce')) < 2] 

とユーザーpd.to_numeric出力:

 
    rank  team rating highest_rank highest_rating 
0  1 Germany 2097    1   2205 
1  2  Brazil 2086    1   2161 
2  3  Spain 2011    1   2147 
4  5 Argentina 1967    1   2128 
3

あなたが解析できる " - " としてNaNの値を。それはより多くの将来の仕事のためにあなたを助けるかもしれません。

table = pd.read_table('team_rankings.dat', na_values="-") 

は、それが自動的に追加されるようにhttps://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html

+1

がtrueにドキュメント、 'keep_default_na'のデフォルトを読んでください。あなたのバージョンは不必要にコード臭いです。 – mkastner

+0

@MaxU最後の半年に私はいつもドキュメントを読んであまりにも多くの時間を費やし、彼らはすべてのための解決策を持っているように感じる... – mkastner

+0

と@npross、私のソリューションでは、あなたはいつも整数を持っています将来の仕事のためにそれらをキャストする。テーブルを視覚化したいときだけ、NaN値をマイナスに置き換える必要があります(それが視覚化する方法であれば) – mkastner

関連する問題