将csv分类为单独列表的更有效方法?

时间:2017-03-14 00:38:57

标签: python list csv row multiple-columns

我从这里下载了一个数据列表:this

它是一个非常标准的数据集:

Bank Name,City,ST,CERT,Acquiring Institution,Closing Date,Updated Date
Proficio Bank,Cottonwood Heights,UT,35495,Cache Valley Bank,3-Mar-17,8-Mar-17
Seaway Bank and Trust Company,Chicago,IL,19328,State Bank of Texas,27-Jan-17,17-Feb-17
Harvest Community Bank,Pennsville,NJ,34951,First-Citizens Bank & Trust Company,13-Jan-17,17-Feb-17
Allied Bank,Mulberry,AR,91,Today's Bank,23-Sep-16,17-Nov-16

但是,我用来将每列放入列表的代码比我想象的要冗长得多:

import csv

a = []
b = []
c = []
d = []
e = []
f = []
g = []

with open('banklist.csv', 'rb') as cf:
     bl = csv.reader(cf, delimiter=',')
     for row in bl:
          a.append(row[0])
          b.append(row[1])
          c.append(row[2])
          d.append(row[3])
          e.append(row[4])
          f.append(row[5])
          g.append(row[6])


print a
print b
print c
print d
print e
print f
print g

必须有一种方法可以使这更简单。

1 个答案:

答案 0 :(得分:0)

是的,还有更好的方法:使用pandas DataFrames。 DataFrame中的每一列都是一个单独的列表:

df = pd.read_csv('your_file.csv')
# Column extraction example:
df['City'].values
# array(['Cottonwood Heights', 'Chicago', 'Pennsville', 'Mulberry'], dtype=object)

如果你真的想要一个Python列表(不需要这个 - 你可以在Pandas中处理数据!),强迫一个数组到一个列表:

df['City'].values.tolist()
# ['Cottonwood Heights', 'Chicago', 'Pennsville', 'Mulberry']