以一定数量的行更新Dataframe中的值

时间:2018-03-05 06:25:10

标签: 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

1 个答案:

答案 0 :(得分:1)

您似乎需要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个索引并设置值:

idx = df.index[df.Col2.isnull()]
df.loc[idx[:3], 'Col2'] = 100