如何用IF条件遍历pandas DataFrame并对符合要求行调用自定义函数
实现思路
- 首先通过pandas布尔索引直接筛选出同时满足
Age>11和Size<51的行,该过程仅做过滤查询,不会修改原DataFrame也不需要新增列,符合优先方案要求 - 遍历筛选后的结果集,逐行提取
First Name和Surname两个字段的取值,传入自定义函数myfunc执行即可得到目标输出
可运行代码片段
import pandas as pd # 初始化示例DataFrame df = pd.DataFrame({'First Name': ['George', 'Alex', 'Leo'], 'Surname' : ['Davis', 'Mulan', 'Carlitos'], 'Age': [10, 15, 20], 'Size' : [30, 40, 50]}) # 自定义函数 def myfunc(firstname, surname): print(firstname + ' ' + surname) # 筛选符合条件的行,无新增列 filtered_rows = df[(df['Age'] > 11) & (df['Size'] < 51)] # 遍历调用函数 for _, row in filtered_rows.iterrows(): myfunc(row['First Name'], row['Surname'])
运行输出结果:
Alex Mulan Leo Carlitos
内容的提问来源于stack exchange,提问作者Lucas Schwartz
相关产品推荐
相关产品推荐

