标签: python-3.x pandas
我有一个数据框
d={'Col1':['a','b','c','e','f','g','a','b','c','d'],'Col2':[3,4,6,None,7,8,None,9,None,None,]} df=pd.DataFrame(data=d)
我需要的是设置Col2等于NaN的值: 前三= 100
通常我会使用loc来执行此类任务,但由于我不明白它不适用于loc + iloc:
df.loc[df.Col2.isnull()].iloc[:3]=100
答案 0 :(得分:1)
您似乎需要fillna参数limit:
fillna
limit
df['Col2'] = df['Col2'].fillna(100, limit=3) print (df) Col1 Col2 0 a 3.0 1 b 4.0 2 c 6.0 3 e 100.0 4 f 7.0 5 g 8.0 6 a 100.0 7 b 9.0 8 c 100.0 9 d NaN
如果要使用loc获取NaN s的前3个索引并设置值:
loc
NaN
idx = df.index[df.Col2.isnull()] df.loc[idx[:3], 'Col2'] = 100