Python pandas如何按Material列指定值匹配输出对应Company列内容
Python Pandas 实现方案
你不需要手动遍历所有行列,用pandas自带的布尔索引就能高效完成需求,具体实现如下:
前置说明
你现有代码里的df = pd.DataFrame(material_data_df, columns=['material in drawing'])属于冗余代码,pd.read_excel读取返回的结果本身就是DataFrame格式,不需要二次转换。
如果你的Excel里材料列实际名称是material in drawing,记得把下方代码里的列名替换为实际值即可。
方案1:布尔索引筛选(推荐,性能最优)
直接按条件筛选目标行,提取对应公司字段:
import pandas as pd # 读取Excel文件 material_data_df = pd.read_excel(r'C:\Users\xxxxxx\Desktop\materials.xlsx') # 筛选Material列等于Iron的行,提取Company列值 target_companies = material_data_df.loc[material_data_df['Material'] == 'Iron', 'Company'] # 逐行打印匹配到的公司名称 for company in target_companies: print(company)
方案2:遍历每行实现(适合需额外处理单行列逻辑的场景)
如果你确实需要遍历所有行处理,可以用iterrows方法实现:
import pandas as pd material_data_df = pd.read_excel(r'C:\Users\xxxxxx\Desktop\materials.xlsx') # 遍历表中每一行 for _, row in material_data_df.iterrows(): if row['Material'] == 'Iron': print(row['Company'])
异常排查
如果没有输出结果,请优先检查:
- Excel中的列名和代码里的列名是否完全一致,大小写、空格都要匹配
- Material列里的
Iron是否存在大小写偏差、前后多余空格,比如是不是写为iron或者Iron
内容的提问来源于stack exchange,提问作者Leopold Wahlbeck
相关产品推荐
相关产品推荐

