如何读取CSV文件并转换为每个键对应多个值的字典?
实现CSV数据转指定格式字典的方案
你给出的原始CSV数据结构如下:
| columns A | columns B |
|---|---|
| a | row1 |
| a | row2 |
| a | row3 |
| b | row 1 |
| b | row 2 |
| b | row 3 |
预期输出格式:
{ 'a' : ['row1','row2','row3'], 'b' : ['row1','row2','row3'] }
方法1:使用Python标准库csv模块(无需额外安装依赖)
import csv res = {} # 替换为你本地的CSV文件路径 with open("data.csv", "r", encoding="utf-8") as f: reader = csv.DictReader(f) for row in reader: key = row["columns A"] # 移除第二列值中的所有空格,匹配预期输出格式 val = row["columns B"].replace(" ", "") if key not in res: res[key] = [] res[key].append(val) print(res)
方法2:使用pandas处理(适合大数据量场景)
import pandas as pd # 替换为你本地的CSV文件路径 df = pd.read_csv("data.csv") # 移除第二列值中的所有空格 df["columns B"] = df["columns B"].str.replace(" ", "") # 按第一列分组,将第二列对应值转为列表后生成字典 res = df.groupby("columns A")["columns B"].apply(list).to_dict() print(res)
注意事项
- 如果不需要移除第二列的空格,删除对应
replace相关代码行即可,输出会保留原始空格 - 运行代码前请将文件路径替换为你本地CSV的实际存储路径
内容的提问来源于stack exchange,提问作者Ân Nguyễn
相关产品推荐
相关产品推荐

