繁体   English   中英

遍历熊猫数据框的行并基于列创建变量

[英]Loop through rows of pandas dataframe and create variables based on columns

我有一个pandas.DataFrame df.columns = ['jobID', 'emailAddress', 'jobTitle', 'jobSource', 'contactName']index_col = 'jobID' df.columns = ['jobID', 'emailAddress', 'jobTitle', 'jobSource', 'contactName']

我的目标是遍历此数据框的每一行,并基于每个“单元格”(列与行的交集)的值创建变量,并将其传递给我编写的函数,该函数可以自动生成和发送电子邮件。

到目前为止,这就是我要做的,但是还没有完成。

for row in df.index():
    email = str(df['emailAddress'])
    jobTitle = str(df['jobTitle'])
    jobSource = str(df['jobSource'])
    jobID = str(df['jobID'])
    nameOfContact = str(df['contactName'])

    """ generate the email subject using string methods
    'This is a subject about %s' % (jobTitle)
    """
    subj = emailSubj(jobSource = jobSource,
              jobTitle = jobTitle,
              jobID = jobID)

    """
    create email body using similar logic as subject
    """
    body = create_emailBody(nameOfContact = nameOfContact)
    """
    Generate and send the email by passing email address, subject, body
    """
    emailTool(email = email,
              subj = subj,
              body = body)

该脚本可以运行,但是我认为我没有正确地遍历行并命名变量。 我收到的是整列而不是单元格。

您可以使用.apply(..., axis=1)

df.apply(lambda r: 
            emailTool(email=r['emailAddress'],
                      subj=emailSubj(jobSource=r['jobSource'],
                                     jobTitle=r['jobTitle'],
                                     jobID=r['jobID']),
                      body=create_emailBody(nameOfContact=r['contactName'])
            ),
         axis=1
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM