带有递增值的 Pandas fillna
Posted
技术标签:
【中文标题】带有递增值的 Pandas fillna【英文标题】:Pandas fillna with an incremented value 【发布时间】: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。 【参考方案1】:IIUC ffill
与 groupby
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))以上是关于带有递增值的 Pandas fillna的主要内容,如果未能解决你的问题,请参考以下文章
使用 Pandas 在巨大的 CSV 中解析带有嵌套值的 JSON 列