大熊猫不修改df

时间:2018-05-25 20:15:24

标签: python pandas

这里有大熊猫新手。我有一个df:

inked=tracker[['A','B','C','D','AA','BB','CC', 'DD', 'E', 'F']]

单字母列名称包含名称,双字母列名称包含数字,但也包含NaN。

我使用这个将所有NaN转换为零:

inked.loc[:,'AA':'DD'].fillna(0)

它有效,但是当我做的时候

inked.head()

我用NaN获得原始df。如何在df中永久更改?

2 个答案:

答案 0 :(得分:1)

默认情况下,fillna()未执行到位。如果您直接在DataFrame上操作,那么您可以使用inplace=True参数,如下所示:

inked.fillna(0, inplace=True)

但是,如果您首先使用loc选择列的子集,则结果将丢失。

这涉及here。基本上,您需要将更新的DataFrame重新分配回原始DataFrame。对于列的列表(而不是您最初尝试过的范围),您可以执行以下操作:

inked[['AA','DD']] = inked[['AA','DD']].fillna(0)

答案 1 :(得分:0)

通常,在执行数据框操作时,如果要更改数据框,则需要将其重新分配给自身或新变量。 (至少根据我的经验)
inked = inked.loc[:,'AA':'DD'].fillna(0)