【问题标题】:Pandas fillna with an incremented value带有递增值的 Pandas fillna
【发布时间】:2019-02-24 06:15:35
【问题描述】:

我有一个数据框,其中有一列连续但不相邻的数字和缺失值。

我想使用fillna 函数用前一个非缺失行的增量值填充缺失值。

这是一个简化的表格:

index  my_counter
0      1
1      2
2      NaN
3      3
4      NaN
5      NaN
6      8

我想这样填写my_counter

index  my_counter
0      1
1      2
2      2.1
3      3
4      3.1
5      3.2
6      8

我怎样才能完成这项任务?

【问题讨论】:

  • 嗨@EricM,你能也显示你的代码吗?到目前为止,您尝试过什么?
  • 我的尝试(成功)涉及循环和比较,这不是我寻求的以熊猫为中心的解决方案。 Wen的以下解决方案效果很好。只需要补充一点,您需要将 my_column 设置为等于该代码行,因为其目的是用递增的值“替换”NaN。

标签: python pandas fillna


【解决方案1】:

IIUC ffillgroupby cumcount

df.my_counter.ffill()+df.groupby(df.my_counter.notnull().cumsum()).cumcount()/10
Out[92]: 
0    1.0
1    2.0
2    2.1
3    3.0
4    3.1
5    3.2
6    8.0
dtype: float64

【讨论】:

  • 有没有办法用一系列 UUID 填充 NAN?
  • df=df.apply(lambda x: x.fillna(uuid.uuid4().hex))
猜你喜欢
  • 1970-01-01
  • 2015-05-31
  • 1970-01-01
  • 2020-04-26
  • 1970-01-01
  • 2022-11-03
  • 2019-10-02
  • 1970-01-01
  • 2021-01-10
相关资源
最近更新 更多