前言

自己想对dataframe某列进行替换

正文

前面是有

data.insert(11,'discovery_like_count',-10)
data.insert(12,'discovery_collect_count',-10)
data.insert(13,'discovery_comment_count',-10)

(1)apply与lambda结合

data['discovery_like_count'] = data['discovery_like_count'].apply(lambda x:data[data['discovery_like_count']!=-10]['discovery_like_count'].mode()[0] if x == -10 else x)

(2)replace替换

data['discovery_comment_count'].replace(-10,data[data['discovery_like_count']!=-10]['discovery_like_count'].mode()[0])

(3)fillna()方法
data[‘a’].fillna(‘你替换的内容’)

总结

因为我这是做特征工程,相对没有匹配的少的用众数进行匹配,但是因为前面的我用data.insert(13,‘discovery_comment_count’,-10),所以一直是用-10替换-10,搞我一脸懵,所以前面筛选!=-10,再用mode()弄出众数填补就可以了