我有以下数据框:
time label
2020-03-03 08:35:03.585 ok
2020-03-03 08:05:01.288 ok
2020-03-03 11:50:01.944 faulty
2020-03-03 08:45:04.540 ok
2020-03-12 10:30:02.227 None
2020-03-12 11:10:02.385 None
2020-03-05 11:15:03.526 None
2020-03-10 10:55:01.084 faulty
2020-03-05 11:35:04.563 None
我只想在小于的label
列中填充空值。time
2020-03-10
我试过了
df[df["label"].isna()] =np.where(df['triggerTs'] < '2020-03-10', 'ok' ,'no label')
但是显然这不是正确的方法,因为会返回此错误
ValueError: Must have equal len keys and value when setting with an iterable
在您的解决方案中,必须为分配给label
列的相同长度的数组过滤掉两侧缺少的行:
m = df["label"].isna()
df.loc[m, 'label'] = np.where(df.loc[m, 'time'] < '2020-03-10', 'ok' ,'no label')
print (df)
time label
0 2020-03-03 08:35:03.585 ok
1 2020-03-03 08:05:01.288 ok
2 2020-03-03 11:50:01.944 faulty
3 2020-03-03 08:45:04.540 ok
4 2020-03-12 10:30:02.227 no label
5 2020-03-12 11:10:02.385 no label
6 2020-03-05 11:15:03.526 ok
7 2020-03-10 10:55:01.084 faulty
8 2020-03-05 11:35:04.563 ok
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句