import csv
file = "data/BeijingPM20100101_20151231.csv"
with open(file) as f:
# TODO
# 完成如下两行代码,使用csv.reader将文件读入到二维列表data_list中
reader =csv.reader(f)
data_list = list(reader)
# TODO
# 打印data_list的前10行
for i in range(10):
print(data_list[i])
データ計算
# TODO
# 将data_list中所有2015年的数据抽取出来,存储到列表data_2015中
data_2015=[]
for lines in data_list:
if lines[1]=='2015':
data_2015.append(lines)
# TODO
# 打印data_2015共有多少行组成
print(len(data_2015))
データ計算
# TODO
# 将data_list中所有2015年的数据抽取出来,存储到列表data_2015中
data_2015=[]
for lines in data_list:
if lines[1]=='2015':
data_2015.append(lines)
# TODO
# 打印data_2015共有多少行组成
print(len(data_2015))
2015年に収集されたデータでは、日次データのPM_Dongsi、PM_Dongsihuan、PM_Nongzhanguan、およびPM_USPostの4つの数値からPMの平均値を計算したいと考えています。
特定のデータがNAの場合、計算時にこの要素を考慮する必要はありません。その日の4つの要素すべてがNAの場合、その日の計算結果もNAになります。
最後に、新しいリストが生成されます。リストの各行の内容は、「いいえ」、「年」、「月」、「日」、「時間」、「季節」、「PM_Dongsi」、「PM_Dongsihuan」、「 PM_Nongzhanguan '、' PM_US Post '、' PM_Avarage '。
data_new = [['No', 'year', 'month', 'day', 'hour', 'season', 'PM_Dongsi', 'PM_Dongsihuan', 'PM_Nongzhanguan', 'PM_US Post', 'PM_Avarage']]
for item in data_2015:
# 获取每行前10列内容放入new_item
new_item = item[:10]
# TODO
# 将pm相关的4列内容取出放到pm_slice中
pm_slice = new_item[6:10]
no_na_num = 0
pm_sum = 0
for i in range(4):
if pm_slice[i] != 'NA':
no_na_num += 1
# TODO
# 将pm_slice[i]累加到变量pm_sum中,注意pm_slice[i]是字符串类型,这里需要做类型转换
pm_sum += int(pm_slice[i])
if no_na_num == 0:
# 如果4个元素都是0,结果列内容设置为'NA'
new_item.append('NA')
else:
# TODO
# 计算四个PM列的均值,存入变量pm_avarage变量中
pm_avarage = pm_sum/4
# TODO
# 将新生成的pm_avarage值添加到new_item末尾
new_item.append(pm_avarage)
# 将new_item这行添加到data_new末尾
data_new.append(new_item)
# TODO
# 打印data_new的前3行
for i in range(3):
print(data_new[i])
結果を書き戻す
計算結果data_newをcsvファイルに書き戻します。
with open('./data/BeijingPM_result.csv', 'w', newline='') as f:
# TODO
# 将data_new内容写出到文件./data/BeijingPM_result.csv
writer =csv.writer(f)
writer.writerows(data_new)