【问题标题】:pandas: fillna(method="pad") "NaN" values but not "None"熊猫:fillna(method="pad") "NaN" 值但不是 "None"
【发布时间】:2022-01-25 08:01:04
【问题描述】:

有没有办法(转发)只填充“NaN”值而不是“None”?例如,我有一个 df:

   A     B     C
0  12    0    None
1  None  NaN  None
2  NaN   9.8  1
3  0     NaN  1

应用 df.fillna(method="pad") 将替换所有 NaN AND None 值。我想从填充操作中排除“无”值并保持不变。

预期:

   A     B     C
0  12    0   None
1  None  0   None
2  None  9.8  1
3  0     9.8  1

【问题讨论】:

  • 你所期望的就是我通过运行你的代码得到的。
  • 请注意,您可能也需要df.ffilldf.bfill ;)

标签: python pandas


【解决方案1】:

数据帧:

df = df.fillna(value=np.nan)

系列/专栏:

df.mycol.fillna(value=np.nan, inplace=True)

你也可以使用replace方法:

df['column'].replace('None', np.nan, inplace=True)

【讨论】:

    【解决方案2】:

    我们可以replace 然后ffill

    yourdf = df.replace({None:'None'}).ffill().replace({'None':None})
          A    B     C
    0    12  0.0  None
    1  None  0.0  None
    2  None  9.8     1
    3     0  9.8     1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-26
      • 2021-11-12
      • 2015-10-20
      • 2014-07-07
      • 2017-01-11
      • 2017-01-04
      相关资源
      最近更新 更多