1

我一直在浏览,但找不到我的特定问题的答案。

我有一个包含数百列和数百行的数据框。我只想更改第一行出现的 NaN 值并将它们替换为空字符串。已针对更改列或整个数据框而不是特定行来回答此问题。我也不想修改其他行中出现的 NaN。

我尝试了以下方法:

dataframe.loc[0].replace(np.nan, '', regex=True)

我也尝试过:

dataframe.update(dataframe.loc[0].fillna(''))

但是当我调用数据框时,它没有被修改。任何帮助将不胜感激!

4

1 回答 1

3

考虑数据框df

np.random.seed([3, 1415])

df = pd.DataFrame(
    np.random.choice([1, np.nan], size=(4, 4)),
    list('WXYZ'), list('ABCD')
)

df

     A    B    C    D
W  1.0  NaN  1.0  NaN
X  1.0  1.0  NaN  1.0
Y  NaN  NaN  NaN  NaN
Z  1.0  NaN  NaN  1.0

如果我们使用非标量,即类似数组的东西来选择第一行,我们将pd.DataFrame返回一个对象,并且可以方便fillna地传递给pd.DataFrame.update

df.update(df.iloc[[0]].fillna(''))
df

     A    B    C    D
W  1.0       1.0     
X  1.0    1  NaN    1
Y  NaN  NaN  NaN  NaN
Z  1.0  NaN  NaN    1

请注意,[0]0iloc.

于 2018-02-28T23:03:32.623 回答