python - 在数据帧的列中填充连续的 NAN

标签 python pandas dataframe null nan

我有一个包含 C 列的数据框,我想用相同的数字填充连续的空白,因为稍后我需要对该行进行分组。

例如

A B C
 1 2 Nan
 1 2 Nan
 1 2 3
 1 2 Nan
 1 2 Nan

我想要的输出是这样的

A B C
1 2 1
1 2 1
1 2 3
1 2 2
1 2 2

我尝试使用 shift() 进行比较,但没有达到所需的输出。

最佳答案

您可以使用fillnacumsum 创建的新系列通过 bool 掩码:

df['C'] = df['C'].fillna(df['C'].notnull().cumsum() + 1)

print (df)
   A  B    C
0  1  2  1.0
1  1  2  1.0
2  1  2  3.0
3  1  2  2.0
4  1  2  2.0

详细信息:

print (df['C'].notnull().cumsum())
0    0
1    0
2    1
3    1
4    1
Name: C, dtype: int32

关于python - 在数据帧的列中填充连续的 NAN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51301318/

相关文章:

python - pandas to_datetime 函数问题

python - 在 Pandas 中解析 JSON

python - 根据 pandas 数据框中的相邻列将 NaN 值替换为特定文本

python - 根据其他数据帧的条件创建数据帧

python - read_sql block 大小错误

python - 如何在没有分组依据的情况下连接 Pandas 中数据框的一列的所有行

r - R-将向量/矩阵作为行添加到另一个数据帧

javascript - 在 Selenium Python 中选择 Javascript 创建的元素

python - 如何将 python 格式字符串与列表中的元素匹配?

python 我想用日期时间设置索引数据帧