将Dataframe中的某些列替换为null

时间:2019-06-06 08:03:52

标签: python python-3.x pandas

我想基于高空值删除某些列。在少数列中有一个等于null的值(在本例中为“ Select”)。我想将其替换为null,以便我可以计算null%并相应地删除列。

Lead Profile    City
Select          Select
Select          Select
Potential Lead  Mumbai
Select          Mumbai
Select          Mumbai

尝试使用替换功能和地图功能。

leads['Specialization'] = leads['Specialization'].replace('Select', "NaN")

此代码仅将字符串替换为字符串,并且实际上不估算空值

def colmap(x):
     return x.map({"Select": "Nan"})

df[['Lead Profile']] = df[['Lead Profile']].apply(colmap)

此代码将所有值替换为NAN

2 个答案:

答案 0 :(得分:1)

用空值替换value

df['col'] = df['col'].replace('value', np.nan)

否则,要仅直接返回小于N值的Select倍的列,可以使用以下方法:

df2 = df[[col for col in df.columns if len(df[df[col] == 'Select']) < N]]

答案 1 :(得分:1)

除了奥利维尔的答案,如果您使用read_csvread_excel导入数据,这些方法还具有na_values参数:

df = pd.read_csv('file.csv', na_values=['Select'])