如何将CSV文件转换为python字典

如何将CSV文件转换为python字典,python,pandas,csv,dictionary,Python,Pandas,Csv,Dictionary,如果我在下面有一个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 将其视为一对一的关系,没有重复 因此,来自it的新数据: 180101,N1,-1 180101,N2,15 180102,N2,-5 180

如果我在下面有一个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

将其视为一对一的关系,没有重复

因此,来自it的新数据:

180101,N1,-1

180101,N2,15

180102,N2,-5

180103,W1,-5


有九种奇特的转换方法吗?

标准库的csv模块有一系列有用的函数来处理csv文件,包括读取和写入csv文件的简单方法。DictReader是将条目转换为词典时需要查看的读取器


一种方法是使用
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,这取决于您的数据大小/项目范围。很可能这不是用户对数据进行的唯一操作。