要在文本文件中存储数据,最简单的方式是将数据作为一系列以逗号分隔的值(CSV)写入文件。
reader处理文件中以逗号分隔的第一行数据,并将每项数据都作为一个元素存储在列表中。
highs = []
for row in reader:
highs.append(row[1])
或者
high = int(row[1])
highs.append(high)
from datetime import datetime
first_date = datetime.strptime('2014-7-1', '%Y-%m-%d')
print(first_date)
方法strptime()可接受各种实参,并根据它们来决定如何解读日期。
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)
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
添加数字
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