You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Pandas将列中空单元格替换为前一行有效值并统计数量?

解决方案

1. 填充A列的空单元格

你之前的方法无效是因为空单元格被转为了空字符串("")而非NaN,而fillna()只对NaN值生效。正确步骤如下:

  • 先将A列中的空字符串替换为NaN
  • 使用ffill()(forward fill)向前填充前一行的有效值

代码示例:

import pandas as pd
import numpy as np

# 构造你的DataFrame
df = pd.DataFrame(
    {'A': ['Roses', '', 'Tulips', '', 'Cactus', ''],
     'B': ['Name1', 'Name2', 'Name3', 'Name4', 'Name5', 'Name6']},
    index=[1,2,3,4,5,6]
)

# 转换空字符串为NaN,再向前填充
df['A'] = df['A'].replace('', np.nan).ffill()

执行后你会得到目标DataFrame:

A       B
1  Roses   Name1
2  Roses   Name2
3  Tulips  Name3
4  Tulips  Name4
5  Cactus  Name5
6  Cactus  Name6

2. 统计每种植物对应的人数

可以用两种方法实现:

方法一:使用value_counts()

plant_count = df['A'].value_counts()

输出结果:

Roses     2
Tulips    2
Cactus    2
Name: A, dtype: int64

方法二:使用groupby()

plant_count = df.groupby('A')['B'].count()

输出结果和上面一致。

内容的提问来源于stack exchange,提问作者Extent3133

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 03:24:54