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

如何去除Pandas迭代输出中国家名称的括号与逗号?

解决Pandas iterrows()迭代时列表格式字段的符号问题

你看到的['US']格式,说明对应单元格存储的是Python列表对象,而非普通字符串。直接取字段会输出列表的默认字符串表示,加双层括号只会嵌套列表,自然没用。以下是几种针对性解决方法:

  • 提取列表单个元素(假设每个单元格仅含一个元素)
    迭代时直接取列表的第一个索引值:

    import pandas as pd
    
    df = pd.read_csv('cars.csv')
    for index, row in df.iterrows():
        # 替换为你的国家列名,比如'country'
        country = row['country'][0]
        print(country)  # 输出:US
    
  • 提前将列表列转为字符串列
    先批量处理整列,避免每次迭代重复操作:

    df = pd.read_csv('cars.csv')
    # 提取每个列表的第一个元素转为字符串
    df['country'] = df['country'].str[0]
    
    for index, row in df.iterrows():
        print(row['country'])  # 输出:US
    
  • 处理多元素列表(拼接为字符串)
    如果单元格可能包含多个国家值,可将列表元素拼接成逗号分隔的字符串:

    for index, row in df.iterrows():
        country = ', '.join(row['country'])
        print(country)  # 示例输出:US, CA
    
  • 修复错误解析的字符串列表
    如果原CSV中是"['US']"这类字符串(而非真实列表),需先解析为列表再处理:

    import pandas as pd
    import ast
    
    df = pd.read_csv('cars.csv')
    # 将字符串形式的列表转为真实列表对象
    df['country'] = df['country'].apply(ast.literal_eval)
    
    # 之后按上述方法提取元素
    for index, row in df.iterrows():
        print(row['country'][0])
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 23:03:10