如何在dataframe中添加/插入返回多个字段(作为新列)的函数调用的输出
示例代码&;数据:
from pandas import DataFrame
People_List = [['Jon','Smith',21],['Mark','Brown',38],['Maria','Lee',42],['Jill','Jones',28],['Jack','Ford',55]]
df = DataFrame (People_List,columns=['First_Name','Last_Name','Age'])
print (df)
First_Name Last_Name Age
0 Jon Smith 21
1 Mark Brown 38
2 Maria Lee 42
3 Jill Jones 28
4 Jack Ford 55
def getTitleBirthYear(df):
if 'Maria' in df.First_Name:
title='Ms'
else:
title='Mr'
current_year = int('2020')
birth_year=''
age = df.Age
birth_year = current_year - age
return title,birth_year
getTitleBirthYear(df)
title birth_year
0 Mr 1999
1 Mr 1982
2 Ms 1978
3 Mr 1992
4 Mr 1965
最终预期输出:
First_Name Last_Name Age title birth_year
0 Jon Smith 21 Mr 1999
1 Mark Brown 38 Mr 1982
2 Maria Lee 42 Ms 1978
3 Jill Jones 28 Mr 1992
4 Jack Ford 55 Mr 1965
请建议。谢谢
尽管您可以
apply
,但最好使用向量化函数(请参见When should I (not) want to use pandas apply() in my code?)。您的逻辑可以简化如下:这里有两种方法,应用和创建新列
df[['title', 'birth_year']] = pd.DataFrame(df.apply(getTitleBirthYear, axis=1).tolist())
df[['title', 'birth_year']] = df.apply(getTitleBirthYear, axis=1, result_type='expand')
相关问题 更多 >
编程相关推荐