根据其左侧单元格的值在熊猫数据框中填充NaN值

大卫·菲德兹

我试图在一个非常大的熊猫数据框中用零填充NaN,但前提是在同一行中但在其左侧的单元格中有非NaN值。因此,例如,从此输入DataFrame中,

input = pd.DataFrame([[1, np.NaN, 1.5, np.NaN], [np.NaN, 2, np.NaN, np.NaN]], index=['A', 'B'], columns=['col1', 'col2', 'col3', 'col4'])

看起来像:

    col1    col2    col3    col4
A   1.0     NaN     1.5     NaN
B   NaN     2.0     NaN     NaN

预期的输出将是:

    col1    col2    col3    col4
A   1.0     0       1.5     0
B   NaN     2.0     0       0

看看[B,col1]为何仍然是Nan,因为它的左边没有not-NaN值,但是所有四个[A,col2],[A,col4],[B,col3]和[B,col4]都已填充零(因为存在较左的非NaN值)。

有人对如何进行此操作有任何想法吗?非常感谢!

耶斯列尔

使用前向填充缺失值并测试不缺失,并通过测试缺失值和此掩码分配链0

df[df.ffill(axis=1).notna() & df.isna()] = 0
print (df)
   col1  col2  col3  col4
A   1.0   0.0   1.5   0.0
B   NaN   2.0   0.0   0.0

或者,您可以将累积和与测试0不相等的值一起使用:

df[df.fillna(0).cumsum(axis=1).ne(0) & df.isna()] = 0
print (df)
   col1  col2  col3  col4
A   1.0   0.0   1.5   0.0
B   NaN   2.0   0.0   0.0

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据单元格的十六进制值在Excel 2013中为其填充颜色

熊猫替换数据框单元格值

熊猫根据行中其他单元格的值向单元格分配值

根据熊猫中的单元格值索引列

在Pandas数据框中水平填充单元格值

替换熊猫数据框中的单元格值

熊猫-根据另一个单元格的先前值填充NaN

根据值从熊猫数据框中减去每个单元格

根据熊猫中的值填充单元格

根据单元格值爆炸数据框

熊猫-根据条件更改数据框中的单元格值

根据熊猫数据框中的两列合并单元格值

如何根据熊猫数据框中的数据类型填充NaN值?

根据单个单元格中的多个值对熊猫数据框进行排序

将数据框值汇总到其上方的单元格中

大熊猫:使用来自单独数据框中一个单元格的值填充数据框列中的所有行

在熊猫数据框中的第一个单元格中设置值

如何根据多种条件更改熊猫数据框列系列中的特定单元格值?

根据单元格值填充列表框

更新熊猫数据框单元格值

如何从熊猫数据框中获取单元格值

根据数据框中单元格中的值对单元格应用颜色

熊猫按单元格值分解数据框

根据索引和列值替换数据框中矩阵单元格的值

根据同一行中的值填充 NaN 单元格

聚合熊猫数据框但折叠重复的单元格值

如何检查数据框单元格是否包含值,然后根据条件填充字段

根据 R 中一列中的值获取数据框单元格的值

改变熊猫数据框单元格值