titanic_df['Embarked'] = titanic_df['Embarked'].fillna("S")
titanic_df是数据框,Embarked是列名。我必须在列中遗漏单元格,即空格,我想在缺失的地方添加“S”,但我上面提到的代码不起作用。请帮助我。
答案 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)