首页 > 解决方案 > 熊猫将数据框作为参数传递,但变量在函数内没有得到正确的值

问题描述

numbers_1 = zero['_Mobile'].tolist()

def getmessage(number,df1):
    #get the points, gender and name... 
    message = 'Hello! Greetings from Royale Touche'
    try:
        name = df1.loc[df1['_Mobile'] == number,'Name'].tolist()[0]
        points = df1.loc[df1['_Mobile'] == number, 'Total_Credit_Points'].tolist()[0]
        gender = df1.loc[df1['_Mobile'] == number, 'Gender'].tolist()[0]

        print(gender)

        if gender.lower() == 'male':
            title = 'sir'

        else:
            title = 'mam'

        return message

    except:
        print("not found",number)

message = getmessage(numbers_1[I],zero)

这里的问题是性别在循环中的每次迭代中都以男性身份出现......并且它不会变成女性。熊猫有什么错误吗?

标签: pythonpandas

解决方案


您很可能会得到相同的结果,因为您I在代码顶部进行了硬编码,因此您总是输入相同的变量

这里所说的是针对您的getmessage功能的建议更新

def getmessage(number, df1):
    name, points, gender = df1.loc[df1['_Mobile'] == number][['name', 'points', 
    'gender']].iloc[0].tolist()
    title = 'sir' if gender.lower() == 'male' else 'mam'

推荐阅读