【头歌】综合训练项目1:Python数据分析基础
头歌综合训练项目1:Python数据分析基础
·
第1关:读取MoMA数据集
from csv import reader
# Read the `artworks_clean.csv` file
opened_file = open('artworks_clean.csv', encoding='utf-8')
read_file = reader(opened_file)
moma = list(read_file)
moma = moma[1:]
# Convert the birthdate values
for row in moma:
birth_date = row[3]
if birth_date != "":
birth_date = int(birth_date)
row[3] = birth_date
# Convert the death date values
for row in moma:
death_date = row[4]
if death_date != "":
death_date = int(death_date)
row[4] = death_date
# 请在此添加代码,创建字典然后打印结果
#********** Begin **********#
for row in moma:
date = row[6]
if date != "":
date = int(date)
row[6] = date
print(type(moma[100][6]))
#********** End **********#
第2关:计算艺术家年龄
from csv import reader
# Read the `artworks_clean.csv` file
opened_file = open('artworks_clean.csv', encoding='utf-8')
read_file = reader(opened_file)
moma = list(read_file)
moma = moma[1:]
# Convert the birthdate values
for row in moma:
birth_date = row[3]
if birth_date != "":
birth_date = int(birth_date)
row[3] = birth_date
# Convert the death date values
for row in moma:
death_date = row[4]
if death_date != "":
death_date = int(death_date)
row[4] = death_date
# Convert the date values
for row in moma:
date = row[6]
if date != "":
date = int(date)
row[6] = date
# 请在此添加代码,计算艺术家年龄然后打印结果
#********** Begin **********#
ages=[]
final_ages=[]
for row in moma:
date = row[6]
birth = row[3]
if type(birth) == int:
age = date - birth
else:
age = 0
ages.append(age)
for a in ages:
if a >20:
final_ages.append(a)
else:
final_ages.append('Unknown')
final_ages.append('final_age')
print(final_ages[:100])
#********** End **********#
第3关:把年龄换算成年代
from csv import reader
# Read the `artworks_clean.csv` file
opened_file = open('artworks_clean.csv', encoding='utf-8')
read_file = reader(opened_file)
moma = list(read_file)
moma = moma[1:]
# Convert the birthdate values
for row in moma:
birth_date = row[3]
if birth_date != "":
birth_date = int(birth_date)
row[3] = birth_date
# Convert the death date values
for row in moma:
death_date = row[4]
if death_date != "":
death_date = int(death_date)
row[4] = death_date
# Convert the date values
for row in moma:
date = row[6]
if date != "":
date = int(date)
row[6] = date
# Calculating Artist Ages
ages = []
for row in moma:
birth = row[3]
date = row[6]
if type(birth) == int:
age = date - birth
else:
age = 0
ages.append(age)
final_ages = []
for age in ages:
if age > 20:
final_age = age
else:
final_age = "Unknown"
final_ages.append(final_age)
# 请在此添加代码,把年龄换算成年代
#********** Begin **********#
decades=[]
for age in final_ages:
if age =='Unknown':
decade = age
else:
decade = str(age)
decade = decade[:-1]+"0s"
decades.append(decade)
print(decades[:100])
#********** End **********#
第4关:总结年代数据
from csv import reader
# Read the `artworks_clean.csv` file
opened_file = open('artworks_clean.csv', encoding='utf-8')
read_file = reader(opened_file)
moma = list(read_file)
moma = moma[1:]
# Convert the birthdate values
for row in moma:
birth_date = row[3]
if birth_date != "":
birth_date = int(birth_date)
row[3] = birth_date
# Convert the death date values
for row in moma:
death_date = row[4]
if death_date != "":
death_date = int(death_date)
row[4] = death_date
# Convert the date values
for row in moma:
date = row[6]
if date != "":
date = int(date)
row[6] = date
# Calculating Artist Ages
ages = []
for row in moma:
birth = row[3]
date = row[6]
if type(birth) == int:
age = date - birth
else:
age = 0
ages.append(age)
final_ages = []
for age in ages:
if age > 20:
final_age = age
else:
final_age = "Unknown"
final_ages.append(final_age)
# Converting Ages to Decades
decades = []
for age in final_ages:
if age == "Unknown":
decade = age
else:
decade = str(age)
decade = decade[:-1]
decade = decade + "0s"
decades.append(decade)
# 请在此添加代码,创建频率表统计年代数据
#********** Begin **********#
decade_frequency = {}
for decade in decades:
if decade not in decade_frequency.keys():
decade_frequency[decade]=1
else:
decade_frequency[decade]=decade_frequency[decade]+1
print(decade_frequency)
#********** End **********#
第5关:将变量插入字符串
artist = "Pablo Picasso"
birth_year = 1881
# 请在此添加代码,用str.format()函数插入变量到字符串然后打印结果
#********** Begin **********#
template = "{artist}'s birth year is {birth_year}"
output = template.format(artist=artist, birth_year=birth_year)
print(output)
#********** End **********#
第6关:创建艺术家频率表
from csv import reader
# Read the `artworks_clean.csv` file
opened_file = open('artworks_clean.csv', encoding='utf-8')
read_file = reader(opened_file)
moma = list(read_file)
moma = moma[1:]
# Convert the birthdate values
for row in moma:
birth_date = row[3]
if birth_date != "":
birth_date = int(birth_date)
row[3] = birth_date
# Convert the death date values
for row in moma:
death_date = row[4]
if death_date != "":
death_date = int(death_date)
row[4] = death_date
# Convert the date values
for row in moma:
date = row[6]
if date != "":
date = int(date)
row[6] = date
# Calculating Artist Ages
ages = []
for row in moma:
birth = row[3]
date = row[6]
if type(birth) == int:
age = date - birth
else:
age = 0
ages.append(age)
final_ages = []
for age in ages:
if age > 20:
final_age = age
else:
final_age = "Unknown"
final_ages.append(final_age)
# Converting Ages to Decades
decades = []
for age in final_ages:
if age == "Unknown":
decade = age
else:
decade = str(age)
decade = decade[:-1]
decade = decade + "0s"
decades.append(decade)
# Creating an Artist Frequency Table
decade_frequency = {}
for d in decades:
if d not in decade_frequency:
decade_frequency[d] = 1
else:
decade_frequency[d] += 1
# 请在此添加代码,创建艺术家频率表
#********** Begin **********#
artist_freq={}
for i in moma:
artist=i[1]
if artist not in artist_freq.keys():
artist_freq[artist]=1
else:
artist_freq[artist]=artist_freq[artist]+1
print(len(artist_freq))
#********** End **********#
第7关:创建显示艺术家信息的函数
from csv import reader
# Read the `artworks_clean.csv` file
opened_file = open('artworks_clean.csv', encoding='utf-8')
read_file = reader(opened_file)
moma = list(read_file)
moma = moma[1:]
# Convert the birthdate values
for row in moma:
birth_date = row[3]
if birth_date != "":
birth_date = int(birth_date)
row[3] = birth_date
# Convert the death date values
for row in moma:
death_date = row[4]
if death_date != "":
death_date = int(death_date)
row[4] = death_date
# Convert the date values
for row in moma:
date = row[6]
if date != "":
date = int(date)
row[6] = date
# Calculating Artist Ages
ages = []
for row in moma:
birth = row[3]
date = row[6]
if type(birth) == int:
age = date - birth
else:
age = 0
ages.append(age)
final_ages = []
for age in ages:
if age > 20:
final_age = age
else:
final_age = "Unknown"
final_ages.append(final_age)
# Converting Ages to Decades
decades = []
for age in final_ages:
if age == "Unknown":
decade = age
else:
decade = str(age)
decade = decade[:-1]
decade = decade + "0s"
decades.append(decade)
# Creating an Artist Frequency Table
decade_frequency = {}
for d in decades:
if d not in decade_frequency:
decade_frequency[d] = 1
else:
decade_frequency[d] += 1
# Creating an Artist Frequency Table
artist_freq = {}
for row in moma:
artist = row[1]
if artist not in artist_freq:
artist_freq[artist] = 1
else:
artist_freq[artist] += 1
# 请在此添加代码,创建显示艺术家信息的函数,然后打印艺术家"Henri Matisse"的信息
#********** Begin **********#
template = "There are {num} artworks by {name} in the data set"
def artist_summary(name):
num = artist_freq[name]
print(template.format(num=num, name=name) )
artist_summary("Henri Matisse")
#********** End **********#
第8关:格式化字符串中的数字
pop_millions = [
["China", 1379.302771],
["India", 1281.935991],
["USA", 326.625791],
["Indonesia", 260.580739],
["Brazil", 207.353391],
]
# 请在此添加代码,在字符串中插入国家名和人口数
#********** Begin **********#
tem = "The population of {country} is {num:,.2f} million"
for i in pop_millions:
print(tem.format(country=i[0],num=i[1]))
#********** End **********#
第九关代码没了0.0
更多推荐
已为社区贡献4条内容
所有评论(0)