2016-11-10 2 views
0

私はさまざまな列のDataFrame(df)を持っています。この任務では、オリンピックについての統計を使用して、各国の合計メダルと比較して、夏の金メダルと冬の金メダルの違いを見つけなければなりません。 少なくとも1つの金メダルを持つ国のみを含む必要があります。私は少なくとも1つのメダルを持っていない国を含まないためにdropna()を使用しようとしています。私の現在のコード:これは、次のような出力になりなぜpython3を使ってパンダの列に値をドロップできないのですか?

def answer_three(): 
    df['medal_count'] = df['Gold'] - df['Gold.1'] 
    df['medal_count'].dropna() 
    df['medal_dif'] = df['medal_count']/df['Gold.2'] 
    df['medal_dif'].dropna() 
    return df.head() 
print (answer_three()) 

    # Summer Gold Silver Bronze Total # Winter Gold.1 \ 
Afghanistan  13  0  0  2  2   0  0 
Algeria   12  5  2  8  15   3  0 
Argentina   23 18  24  28  70  18  0 
Armenia    5  1  2  9  12   6  0 
Australasia   2  3  4  5  12   0  0 

      Silver.1 Bronze.1 Total.1 # Games Gold.2 Silver.2 Bronze.2 \ 
Afghanistan   0   0  0  13  0   0   2 
Algeria    0   0  0  15  5   2   8 
Argentina   0   0  0  41  18  24  28 
Armenia    0   0  0  11  1   2   9 
Australasia   0   0  0  2  3   4   5 

      Combined total ID medal_count medal_dif 
Afghanistan    2 AFG   0  NaN 
Algeria     15 ALG   5  1.0 
Argentina    70 ARG   18  1.0 
Armenia     12 ARM   1  1.0 
Australasia    12 ANZ   3  1.0 

は、私が「medal_count」と「medal_dif」でのNaNに「0」の値の両方を取り除く必要があります。 私はコードを書いた数学/方法がおそらく質問を解決するのに間違っているかもしれないが、私はこれらの値を落とすことから始めなければならないと思いますか?上記のいずれかの助けがあれば大歓迎です。

+1

'dropnaためにドロップされ見ることができるように

enter image description here

()'デフォルトではインプレース操作ではありません。 dropna(inplace = True) ' –

+0

説明のため、dfはファイルから読み込まれます。 – NamedN

+0

こんにちはニッキー、私はそれを試みたが、それはまったく同じ出力になりますか? – NamedN

答えて

-1

軸を渡す必要があります。 axis = 1をドロップ関数に追加します。 0 =>行、1 =>列の軸。 0がデフォルトのようです。あなたは、列全体が軸= 1

+0

私は "df ['medal_count']。dropna(axis = 0)"と "df ['medal_dif']。dropna(inplace = True、axis = 0)を試しました。どちらが正しいか分からなかった。出力を変更しないでください。 ValueError:オブジェクトタイプ NamedN

+0

に対して1という名前の軸がありません。注 - シリーズオブジェクトはデフォルトで 'axis = 0'で動作します。 'DF'に' axis = 1'を指定すると、その中に 'NaNs'が含まれていればその列全体が削除されます。 –

+0

説明をありがとう!私が何をしているのかわからない! – NamedN

関連する問題