如何将CSV文件转换为python字典
Posted
技术标签:
【中文标题】如何将CSV文件转换为python字典【英文标题】:How to convert CSV file to python dictionary 【发布时间】:2018-08-13 01:55:42 【问题描述】:如果我在下面有一个 CSV (info.csv) 文件:
180101,S1,-1
180101,S2,15
180102,S4,-5
180103, S1, -5
...
这些列分别表示“日期”、“代码”、“信息1”。
我想转换原始数据中匹配的新代码(csv文件,newcode.scv)。
如新的代码映射如下:
180101, N1
180102, N2
180103, W1
...
将其视为一对一关系,没有重复。
因此得到了新数据:
180101, N1, -1
180101, N2, 15
180102, N2, -5
180103,W1,-5
有九种奇特的转换方式吗?
【问题讨论】:
【参考方案1】:标准库的 csv 模块有许多有用的函数来处理 csv 文件,包括读取和写入它们的简单方法。 DictReader 是您想要查看的用于将条目转换为字典的工具。
csv module documentation
【讨论】:
【参考方案2】:一种方法是使用pandas
,它专门用于矢量化计算。纯粹的csv
方法可能是基于循环且效率低下的。
import pandas as pd
df = pd.read_csv('info_in.csv', sep=', ', engine='python',
header=None, names=['date', 'code', 'info1'])
# date code info1
# 0 180101 S1 -1
# 1 180101 S2 15
# 2 180102 S4 -5
# 3 180103 S1 -5
d = 'S1': 'N1', 'S2': 'N2', 'S4': 'W1'
df['code'] = df['code'].map(d)
df.to_csv('info_out.csv', index=False)
# date code info1
# 0 180101 N1 -1
# 1 180101 N2 15
# 2 180102 W1 -5
# 3 180103 N1 -5
【讨论】:
pandas 最有可能完成这项任务。 @allo,这取决于您的数据大小/项目范围。这可能不是用户对数据进行的唯一操作。以上是关于如何将CSV文件转换为python字典的主要内容,如果未能解决你的问题,请参考以下文章
如何将给定的 Excel 文件转换为 Python 中的字典?
Python:忽略文本文件的注释,该文本文件被解析为字典以写入 CSV [重复]