如何在pandas数据帧的列中用Zero替换所有“”值

时间:2016-10-13 13:19:49

标签: python pandas

titanic_df['Embarked'] = titanic_df['Embarked'].fillna("S")

titanic_df是数据框,Embarked是列名。我必须在列中遗漏单元格,即空格,我想在缺失的地方添加“S”,但我上面提到的代码不起作用。请帮助我。

2 个答案:

答案 0 :(得分:3)

我认为你需要replace

titanic_df['Embarked'] = titanic_df['Embarked'].replace(" ", "S")

样品:

import pandas as pd

titanic_df = pd.DataFrame({'Embarked':['a','d',' ']})
print (titanic_df)
  Embarked
0        a
1        d
2       

titanic_df['Embarked'] = titanic_df['Embarked'].replace(" ", "S")

print (titanic_df)
  Embarked
0        a
1        d
2        S

如果需要替换一个或多个空格,也可以将str.replace与正则表达式一起使用  ^表示空格的开头,$表示空格的结束:

titanic_df = pd.DataFrame({'Embarked':['a ',' d',' ', '    ']})
print (titanic_df)
  Embarked
0       a 
1        d
2         
3   

titanic_df['Embarked'] = titanic_df['Embarked'].str.replace("^\s+$", "S")
#same output
#titanic_df['Embarked'] = titanic_df['Embarked'].replace("^\s+$", "S", regex=True)
print (titanic_df)
  Embarked
0       a 
1        d
2        S
3        S

答案 1 :(得分:1)

或者您可以使用apply

titanic_df['Embarked'] = titanic_df['Embarked'].apply(lambda x: "S" if x == " " else x)