如何在Python Colab中拆分CSV文件第三列的逗号分隔字符串?
Colab 环境下拆分CSV第3列国家名称的实现方案
操作全程基于pandas实现,不需要额外安装依赖,Colab环境已预装对应库
第一步:加载目标CSV文件
- 导入pandas库
import pandas as pd - 如果你是从本地上传CSV到Colab执行,先调用Colab的文件上传接口:
from google.colab import files # 执行后会弹出文件选择框,选中你的CSV文件即可 uploaded = files.upload() - 读取CSV内容生成DataFrame:
# 替换引号内为你实际上传的CSV文件名 df = pd.read_csv("your_csv_file.csv")
注意:pandas列索引从0开始计数,你提到的第3列,对应的列索引值为2,后续所有操作都通过这个索引定位目标列,不会因为列名变动导致定位失败
第二步:根据需求拆分提取国家名称
场景1:拆分后将每个国家展开为独立行(保留原表其他列信息)
如果原表某一行的第3列存了Argentina,Chile,USA,执行后会把这一行拆成3行,每行对应一个国家,其他列的内容自动复用:
# 按逗号拆分目标列,生成列表格式的临时列 df["country_list"] = df.iloc[:, 2].str.split(",") # 展开列表为独立行 df_with_countries = df.explode("country_list") # 清理拆分后每个国家名前后的多余空格,避免出现 " USA" 这类带空格的脏数据 df_with_countries["country_list"] = df_with_countries["country_list"].str.strip()
提取完成后你可以直接导出结果下载:
# 导出为新的CSV df_with_countries.to_csv("extracted_country_data.csv", index=False) # 触发Colab的文件下载 files.download("extracted_country_data.csv")
场景2:收集全表所有出现过的国家名称,生成去重的国家列表
如果不需要保留原表其他列,只是要汇总全表所有国家名,直接执行:
# 拆分目标列、展开为单值序列、去空值、去重、转为普通列表 all_unique_countries = ( df.iloc[:, 2] .str.split(",") .explode() .str.strip() .dropna() .unique() .tolist() ) # 直接打印查看提取结果 print(all_unique_countries)
常见问题排查
- 如果你的CSV没有表头(第一行就是纯数据),读取时需要加上参数
header=None,即df = pd.read_csv("your_csv_file.csv", header=None),此时第3列的索引依然为2,不影响后续定位。 - 如果目标列存在空值,拆分前先补空避免报错:在拆分代码前加
df.iloc[:, 2] = df.iloc[:, 2].fillna("")
内容的提问来源于stack exchange,提问作者klysa
相关产品推荐
相关产品推荐

