python - 熊猫系列 - groupby 并采取累积最近的非空
问题描述
我有一个包含一Category
列(我们将按其分组)和一Value
列的数据框。我想添加一个新列LastCleanValue
,显示该组的最新非空值。如果组中还没有任何非空值,我们就取空值。例如:
df = pd.DataFrame({'Category':['a','a','a','b','b','a','a','b','a','a','b'],
'Value':[np.nan, np.nan, 34, 40, 42, 25, np.nan, np.nan, 31, 33, np.nan]})
该函数应添加一个新列:
| | Category | Value | LastCleanValue |
|---:|:-----------|--------:|-----------------:|
| 0 | a | nan | nan |
| 1 | a | nan | nan |
| 2 | a | 34 | 34 |
| 3 | b | 40 | 40 |
| 4 | b | 42 | 42 |
| 5 | a | 25 | 25 |
| 6 | a | nan | 25 |
| 7 | b | nan | 42 |
| 8 | a | 31 | 31 |
| 9 | a | 33 | 33 |
| 10 | b | nan | 42 |
我怎样才能在熊猫中做到这一点?我正在尝试类似的东西df.groupby('Category')['Value'].dropna().last()
解决方案
这更像ffill
df['new'] = df.groupby('Category')['Value'].ffill()
Out[430]:
0 NaN
1 NaN
2 34.0
3 40.0
4 42.0
5 25.0
6 25.0
7 42.0
8 31.0
9 33.0
10 42.0
Name: Value, dtype: float64
推荐阅读
- uwp - UWP 尝试保留应用名称时发生意外错误
- python - 抓取网站中的 cloudcraper 问题(cloud flare 版本 2)
- database - 如果 XY-->XZ 然后 Y-->Z,则函数依赖?
- vba - 检查 PDF 是否是 Word VBA 中的图像/OCR
- ruby-on-rails - 创建一个引用另一个表的简单表单
- python - 苦苦挣扎于基本的数据框操作(Python)
- python - pip install pdftotext python 没有 Anaconda
- scala - 如何在 Spark 中的 Dataframe 中通过索引删除数组中的元素
- java - Android studio LibVLC 流延迟
- javascript - 为什么我不能使用 MVC 制作 .js 文件?