为什么我不能使用python3在pandas上的列中删除值?

时间:2016-11-10 18:07:16

标签: python pandas

我有一个包含各种列的DataFrame(df)。在这项任务中,我必须使用有关奥运会的统计数据,找出每个国家的夏季金牌和冬季金牌相对于总奖牌的差异。 我必须只包括至少有一枚金牌的国家。我试图使用dropna()来不包括那些至少没有一枚奖牌的国家。我目前的代码:

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

我需要摆脱' 0' " medal_count"中的值并且" medal_dif"中的NaN。 我也知道我编写代码的数学/方式可能不正确解决问题,但我想我需要先删除这些值?任何上述任何帮助都非常感谢。

1 个答案:

答案 0 :(得分:-1)

您需要传递一个轴,例如进入drop函数的轴= 1。 轴= 0 =>行,1 =>柱。 0似乎是默认值。

enter image description here

正如您所看到的那样,对于轴= 1

,整个列都被删除了