You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将DataFrame元素作为CSV文件名,按匹配值生成独立CSV的问题求助

问题分析与解决方案

原代码存在的核心问题

  • 循环内执行pd.merge(df1, df2, on=['PHYCELLID'])会合并所有匹配的PHYCELLID数据,而非当前循环的单个ID对应内容,导致每次生成的CSV完全重复
  • 文件名使用df1['PHYCELLID']调用的是整个Series对象,会把所有ID拼接成混乱的文件名,而非单个ID对应的合法文件名

修正后的代码

import pandas as pd

# 读取两个CSV文件
df1 = pd.read_csv('LookupPCI.csv')
df2 = pd.read_csv('All_PCI.csv')

# 获取需要匹配的所有不重复PHYCELLID值
target_ids = df1['PHYCELLID'].unique()

# 遍历每个目标ID,筛选并保存对应数据
for cell_id in target_ids:
    # 从df2中筛选当前PHYCELLID对应的行
    filtered_data = df2[df2['PHYCELLID'] == cell_id]
    # 保存为单个CSV文件,文件名包含当前ID
    filtered_data.to_csv(f"Looked up PCI list_{cell_id}.csv", index=False)

代码逻辑说明

  • 用unique()提取不重复的PHYCELLID,避免同一ID重复生成文件
  • 直接通过布尔索引在df2中筛选目标ID的行,比merge更高效精准
  • 使用f-string格式化文件名,确保每个文件对应唯一的PHYCELLID,命名清晰规范

内容的提问来源于stack exchange,提问作者syed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 19:23:11