在列中设置值并为每次匹配增加值的最简单方法是什么?在下面的示例中,我想将第一个nan替换为21,将第二个nan替换为22,依此类推。目前,我是这样做的,但是我敢肯定有一种更有效的方法。
df = pd.DataFrame({'a': [0,np.nan, np.nan, np.nan],'b': [1,2,3,4]})
df
Out[29]:
a b
0 0.0 1
1 NaN 2
2 NaN 3
3 NaN 4
new_values = []
start_val = 21
for i in df['a']:
if np.isnan(i):
new_values.append(start_val)
start_val+=1
else:
new_values.append(i)
df['a'] = new_values
df
Out[30]:
a b
0 0.0 1
1 21.0 2
2 22.0 3
3 23.0 4
就你而言
df.a=df.a.fillna(21+(df.a.isnull().cumsum()-1))
Out[121]:
0 0.0
1 21.0
2 22.0
3 23.0
Name: a, dtype: float64
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句