我有一个这样的数据框:
article_id title
NaN title_1
NaN title_2
NaN title_3
'202102011404103' title_4
'202102011404104' title_5
NaN title_6
首先,我想添加一个条件“如果有 NaN 值,请执行以下操作”(否则什么都不做)。 如果列中有 NaN 值: 我想直接向列中的 NaN 值添加一个增量值,如下所示:
x = 1
df.insert(0, 'article_id', range(x, x + len(df)))
但是我不知道如何将上面的代码直接添加到列article_id,仅添加到NaN值。 我该怎么做?
预期输出:
article_id title
1 title_1
2 title_2
3 title_3
'202102011404103' title_4
'202102011404104' title_5
4 title_6
答案 0 :(得分:2)
您可以创建用于比较缺失值的掩码,并通过第一个值的范围与 NaN
的计数为 sum
:
m = df['article_id'].isna()
x = 1
df.loc[m, 'article_id'] = range(x, x + m.sum())
print (df)
article_id title
0 1 title_1
1 2 title_2
2 3 title_3
3 '202102011404103' title_4
4 '202102011404104' title_5
5 4 title_6