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

Python读取CSV后如何拼接两列值到列表及修复循环仅输出单条问题

问题修复方案

1. 问题原因说明

  • 循环只执行一次的原因:你在range()的第三个参数(步长)设置为了len(df['district']),这个值等于DataFrame的总行数,所以循环只会在i=0时运行一次,自然只返回1条结果。
  • 两列内容以二元组形式存在的原因:你往l1里追加的是(df['unions'][i], df['district'][i]),逗号分隔的两个值默认会组成二元组,改成字符串拼接即可。

2. 修改后代码

import pandas as pd

df = pd.read_csv("file path")
l1 = []
l2 = []
# 直接遍历每一行,逻辑更清晰
for idx, row in df.iterrows():
    # 两列用空格拼接成单个字符串
    union_district = f"{row['unions']} {row['district']}"
    # 若需要保留外层括号的单元素元组格式,就写成l1.append((union_district,)) 注意末尾必须加逗号
    l1.append(union_district)
    l2.append({"entities": [(0, len(row['unions']), row['subdistrict'])]})

TRAIN_DATA = list(zip(l1, l2))
print(TRAIN_DATA)

如果要沿用原来的range写法,把循环头改成for i in range(len(df)):即可,range默认步长为1,会遍历所有行。

3. 补充说明

如果你的期望输出里需要('Dhansagar Bagerhat')外层保留括号,注意Python语法里单元素元组必须加末尾逗号,也就是写为(union_district,),否则(union_district)本质就是单个字符串,不会带外层元组括号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 12:45:01