如何去除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
相关产品推荐
相关产品推荐

