所以我是新手编码并通过Kaggle的泰坦尼克号数据集工作。在数据框中有标有" Age"和"性。"我想创建一个新列,其中包含4个值,表示不同的内容: 0:16岁或以上的男性 1:16岁或以上的女性 2:15岁或以下的男性 3:15岁或以下的女性
到目前为止,我已经得到了这个,但这只是将它分成3个值,而不是我想要的4个。
def person_detail(Person):
Age, Sex = Person
return 2 if Age < 16 else Sex
然后我将该功能应用于&#34;年龄&#34;和&#34;性&#34;用于获取新列的列。我知道你不能有两个回报,但是如果它遇到了我想要完成的事情,它将看起来像下面的那样。
def person_detail(Person):
Age, Sex = Person
return 2 if Age < 16 and Sex == 0
return 3 if Age < 16 and Sex == 1 else Sex
提前致谢。参考&#34;性&#34;第0列是男性,1是女性。
答案 0 :(得分:2)
只需使用if...else
语句即可。我想你想要的是:
def person_detail(Person):
Age, Sex = Person
if Age<16:
return 3 if Sex else 2
else:
return Sex
答案 1 :(得分:0)
您可以使用多个if语句,if-else语句或字典:
d = {(0, 0): 0, (0, 1): 1, (1, 0): 2, (1, 1): 3}
def person_detail(Person):
Age, Sex = Person
return d[Age < 16, Sex]
答案 2 :(得分:0)
在我看来,你应该使用&#34; long&#34; @miindlek建议if/else
使函数的不同结果清晰。另外,我建议不仅要return Sex
,还要返回1 if Sex else 0
,再次明确说明函数返回的内容。
但如果你更喜欢有一个非常短的return
行,你也可以使用这样的三元语句:
return Sex + 2 if Age < 16 else Sex
甚至更短(但不容易理解):
return (Age < 16) * 2 + Sex