![](/img/trans.png)
[英]Pandas: Loop through DataFrame columns and remove rows with variables that have less than i observations
[英]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.