[python从入门到实践] chap16下载数据

1.CSV 文件格式

要在文本文件中存储数据,最简单的方式是将数据作为一系列以逗号分隔的值(CSV)写入文件。
reader处理文件中以逗号分隔的第一行数据,并将每项数据都作为一个元素存储在列表中。

highs = []
for row in reader:
	highs.append(row[1])

或者

high = int(row[1]) 
highs.append(high)

模块datetime

from datetime import datetime
first_date = datetime.strptime('2014-7-1', '%Y-%m-%d')
print(first_date)

方法strptime()可接受各种实参,并根据它们来决定如何解读日期。
[python从入门到实践] chap16下载数据_第1张图片

图片着色

plt.plot(dates, lows, c='blue', alpha=0.5)

Alpha值为0表示完全透明,1(默认设置)表示完全不 透明。通过将alpha设置为0.5,可让红色和蓝色折线的颜色看起来更浅。

检查错误

防止出现空数据集

try:
	current_date = datetime.strptime(row[0], "%Y-%m-%d") 
	high = int(row[1])
	low = int(row[3])
except ValueError:
	print(current_date, 'missing data')
else:
	dates.append(current_date) 
	highs.append(high) 
	lows.append(low)

2.制作世界人口地图:JSON格式

打印

import json

filename = 'Downloads/population_data.json'
with open(filename) as f:
    pop_data = json.load(f)  #列表

for pop_dict in pop_data:
    if pop_dict['Year'] == '2010':  #字典
        country_name = pop_dict['Country Name'] 
        population = pop_dict['Value'] 
        print(country_name + ": " + population)

处理数据

population_data.json中的每个键和值都是字符串。为处理这些人口数据,我们需要将表示人
口数量的字符串转换为数字值,为此我们使用函数int()

population = int(pop_dict['Value']) 
print(country_name + ": " + str(population))

Python不能直接将包含小数点的字符串’1127437398.85751’转换为整数
为消除这种错误,我们先将字符串转换为浮点数,再将浮点数转换为整数

population = int(float(pop_dict['Value']))

Pygal中的地图制作工具要求数据为特 定的格式:
用国别码表示国家,以及用数字表示人口数量。处理地理政治数据时,经常需要用到 几个标准化国别码集。
Pygal使用的国别码存储在模块i18n(internationalization的缩写)中

from pygal.i18n import COUNTRIES

for country_code in sorted(COUNTRIES.keys()): 
	print(country_code, COUNTRIES[country_code])
def get_country_code(country_name): 
	"""根据指定的国家,返回Pygal使用的两个字母的国别码"""
	for code, name in COUNTRIES.items():
		if name == country_name:
			return code
	# 如果没有找到指定的国家,就返回None
    return None

制作世界地图

[python从入门到实践] chap16下载数据_第2张图片

设置地图

添加数字

wm.add('North America', {'ca': 34126000, 'us': 309349000, 'mx': 113423000})

添加颜色

from pygal.style import RotateStyle
wm_style = RotateStyle('#336699') 
wm = pygal.Worldmap(style=wm_style)

Pygal将选择默认的基色。要设置颜色, 可使用RotateStyle,并将LightColorizedStyle作为基本样式。

from pygal.style import LightColorizedStyle, RotateStyle

你可能感兴趣的:(python从入门到实践)