数据分析-Python中的CSV

数据分析

数据来源

  1. 文件服务器或根据文件地址下载
  2. 访问API获取数据
  3. 数据爬取-网络爬虫
  4. 对多种不同格式的数据进行合并得到新的数据

CSV简介

CSV-Comma Separated Values-使用逗号分隔的数据
CSV类似于不含公式的电子表格如Excel
相较于Excel更容易使用代码或Python等编程语言进行处理
Excel的表头列名对应CSV的第一行;Excel的每一行数据对应CSV的每一行数据;CSV的每一行包括第一行均以逗号分隔

Python中的CSV

将CSV中的数据呈现为一个由行组成的列表
这个列表中行的常见表示一般有两种:

每一行都是一个列表csv = [‘A1’, ‘A2’, ‘A3’, ‘A4’],[‘B1’, ‘B2’, ‘B3’, ‘B4’],整个数据结构为一个列表的列表,忽略第一行的列名称
每一行都是一个字典csv = [{‘col1’ : ‘A1’, ‘col2’ : ‘A2’, ‘col3’ : ‘A3’, ‘col4’ : ‘A4’}, {‘col1’ : ‘B1’, ‘col2’ : ‘B2’, ‘col3’ : ‘B3’, ‘col4’ : ‘B4’}],整个数据结构是一个字典的列表,第一行列名称作为key,第二行开始的每一行对应于列的数据为value

使用unicodecsv库读取CSV数据

enrollments.csv文件 http://images.icocoro.me/file/170823enrollments.csv

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import unicodecsv

# 定义一个数组
enrollments = []
# 打开csv文件
f = open('enrollments.csv', 'rb')
# 读取文件内容
reader = unicodecsv.DictReader(f)

for r in reader:
enrollments.append(r)

# 关闭文件
f.close()
# 输出第一行
print(enrollments[0])

运行后的输出结果

1
OrderedDict([('account_key', '448'), ('status', 'canceled'), ('join_date', '2014-11-10'), ('cancel_date', '2015-01-14'), ('days_to_cancel', '65'), ('is_udacity', 'True'), ('is_canceled', 'True')])

Image

使用with语句和list(reader)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import unicodecsv

# 定义一个数组
#enrollments = []
# 打开csv文件
with open('enrollments.csv', 'rb') as f:
# 读取文件内容
reader = unicodecsv.DictReader(f)
enrollments = list(reader)

#for r in reader:
# enrollments.append(r)

# 关闭文件
#f.close()
# 输出第一行
print(enrollments[0])
邵志鹏 wechat
扫一扫上面的二维码关注我的公众号
0%