Python 在df中应用lambdra并返回None

Python 在df中应用lambdra并返回None,python,lambda,Python,Lambda,我制作了一个简单的函数,根据总天数生成一个年、月和日的句子: def days_in_yrmth(days): ''' calculate total days in years,months,days ''' years=days/365 months=(days%365)/30 days = days%365%30 print("{}years {}months {}days".format(str(int(year

我制作了一个简单的函数,根据总天数生成一个年、月和日的句子:

def days_in_yrmth(days):
    '''
    calculate total days in years,months,days
    '''
    years=days/365
    months=(days%365)/30
    days = days%365%30
    print("{}years {}months {}days".format(str(int(years)),str(int(months)),str(int(days))))
Im使用此函数将其传递到整个列以生成新列:

df_days['new_col'] = df_days.apply(lambda row: external.days_in_yrmth(row['days']), axis=1)
在jupyter笔记本上,它向我展示了每一行的预期效果:

例如:
0年0月27天

我有两个问题:

  • 为什么在运行lambdra函数后,jupyter上的输出会显示 你能告诉我每一行的效果吗

  • 当我运行
    df_days
    时,我在每一行的 “新科”


  • 我做错了什么?

    因为
    days\u年(天)
    返回
    None
    。。。没有返回语句,但它正确地打印输出@juanpa.arrivillaga I在打印之前添加了返回语句,但仍然是一样的issue@MadPhysicist是的,输出是正确的。但是为什么当我运行单元格时,我的df的每一行都有一个输出框呢。我怎样才能绕道that@juanpa.arrivillaga你最后的评论帮了我的忙。就凭你问的问题。我把自己弄糊涂了,弄不清楚我在参数中传递了什么,以及我希望函数返回什么。多谢各位