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

时间:2018-03-05 11:56:00

标签: python pandas csv dictionary

如果我有以下CSV(info.csv)文件:

  

180101,S1,-1

     

180101,S2,15

     

180102,S4,-5

     

180103,S1,-5

     

...

列意味着" date"," code"," info1"分别

我想转换原始数据中匹配的新代码(csv文件,newcode.scv)。

如新代码映射如下:

  

180101,N1

     

180102,N2

     

180103,W1

     

...

将其视为一对一关系,不重复。

来自它的新数据:

  

180101,N1,-1

     

180101,N2,15

     

180102,N2,-5

     

180103,W1,-5

有一种奇特的转换方式吗?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

标准库的csv模块有许多用于处理csv文件的有用函数,包括读取和写入它们的简单方法。 DictReader是您想要将条目转换为字典的方法。

csv module documentation