它集列Sex
到1
如果条件True
只,另一个值不变:
titanic["Sex"] == "male"
样品:
titanic = pd.DataFrame({'Sex':['male','female', 'male']})
print (titanic)
Sex
0 male
1 female
2 male
print (titanic["Sex"] == "male")
0 True
1 False
2 True
Name: Sex, dtype: bool
titanic.loc[titanic["Sex"] == "male", "Sex"] = 0
print (titanic)
0 0
1 female
2 0
它是boolean indexing
与loc
非常相似 - 它仅选择值列Sex
由条件:
print (titanic.loc[titanic["Sex"] == "male", "Sex"])
0 male
2 male
Name: Sex, dtype: object
但是我觉得这里更好的使用map
如果只male
和female
值需要转换为一些其他值:
titanic = pd.DataFrame({'Sex':['male','female', 'male']})
titanic["Sex"] = titanic["Sex"].map({'male':0, 'female':1})
print (titanic)
Sex
0 0
1 1
2 0
编辑:
主要loc
用于通过索引和列设置新的价值:
titanic = pd.DataFrame({'Sex':['male','female', 'male']}, index=['a','b','c'])
print (titanic)
Sex
a male
b female
c male
titanic.loc["a", "Sex"] = 0
print (titanic)
Sex
a 0
b female
c male
titanic.loc[["a", "b"], "Sex"] = 0
print (titanic)
Sex
a 0
b 0
c male
[**此答案可能有帮助**](https://stackoverflow.com/a/44891687/2336654) – piRSquared