pandas使用nan值更新特定行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pandas使用nan值更新特定行相关的知识,希望对你有一定的参考价值。
我一直在浏览,但我找不到我的特定问题的答案。
我有一个包含数百列和数百行的Dataframe。我想仅为第一行更改出现的NaN值,并用空字符串替换它们。已经回答了更改列或整个数据帧,但不是特定行。我也不想修改其他行中出现的NaN。
我尝试过以下方法:
dataframe.loc[0].replace(np.nan, '', regex=True)
我也尝试过:
dataframe.update(dataframe.loc[0].fillna(''))
但是当我调用数据帧时,它不会被修改。任何帮助将不胜感激!
答案
考虑数据框架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]
中使用0
而不是iloc
。
以上是关于pandas使用nan值更新特定行的主要内容,如果未能解决你的问题,请参考以下文章
Pandas 用 NaN 值填充列中的单元格,从行中的其他单元格中获取值
pandas计算dataframe数据行的均值(mean)实战:设置skipna=False则计算行均值时不会忽略NaN值