如果我有以下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
有一种奇特的转换方式吗?
答案 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是您想要将条目转换为字典的方法。