如何筛选Pandas DataFrame中result为Win的行并逐行写入CSV文件
实现方法
两种方法可以实现需求,你可以根据自己的场景选择:
方法1:内置方法批量写入(性能最优,推荐使用)
不需要手动逐行遍历,Pandas自带的筛选+写入方法可以直接完成需求,底层已经做了性能优化,数据量较大时效率远高于手动逐行写入:
# 筛选result字段值为Win的所有行 win_data = df[df["result"] == "Win"] # 写入到新CSV文件,index=False参数可以避免把Pandas自动生成的索引列被写入文件 win_data.to_csv("win_candidates.csv", index=False, encoding="utf-8")
方法2:手动逐行写入(符合逐行操作需求)
如果你确实需要对每一行做自定义处理后再写入,可以用以下方式实现逐行写入:
import csv # 先筛选出符合要求的所有行,转成列表格式 filter_rows = df[df["result"] == "Win"].values.tolist() # 取出表头 csv_header = df.columns.tolist() # 打开文件逐行写入 with open("win_candidates.csv", "w", newline="", encoding="utf-8") as f: csv_writer = csv.writer(f) # 先写入表头 csv_writer.writerow(csv_header) # 遍历每一行写入 for row in filter_rows: csv_writer.writerow(row)
注意事项
如果你的result字段存在前后空格、大小写不一致的情况,可以调整筛选条件避免漏匹配:
# 先去除前后空格,统一转小写再判断 win_data = df[df["result"].str.strip().str.lower() == "win"]
内容的提问来源于stack exchange,提问作者mchd
相关产品推荐
相关产品推荐

