[英]How to read CSV file column by column with Python
我有以下格式的CSV文件
Date, Company, Company, Company
1/1/12, 10, 100, 50
1/2/12, 12, 99, 53
1/3/12, 11, 97, 49
我正在尝试将数据输入到PSQL数据库中。
我将如何逐列处理数据,以便拥有类似INSERT INTO table VALUES(company, date, price);
?
每列对应一个公司
我想知道这样的事情是否会起作用:
import csv
with open("file.csv") as f:
reader = csv.reader(f)
for i, column in enumerate(zip(*reader)):
if i == 0:
_, dates = column
else:
# PY3.x
company, *prices = column
# PY2.7
company, prices = column[0], column[1:]
# Do SQL command here
这个想法是通过使用zip(* reader)来转置使用csv.reader
通过行读取的数据。 我目前无法对此进行测试,但是您可能必须使用zip(*list(reader))
来转置所有数据,但是这将加载整个文件并可能进行复制。 由于您的数据很小,因此可以。
对于这种大小的数据,您还可以使用熊猫。 就像这样:
import pandas as pd
data = pd.read_csv ("file.csv", index_col=0, parse_dates=False)
dates = data.index.values
for company in data.columns:
price = data[company].values
#SQL command here
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.