编写Python程序处理含文本数据集并计算各国十年平均GDP
解决方案:计算各国十年平均GDP的Python程序
我来帮你写一个实用的Python程序,专门处理GDP数据集,计算每个国家十年间的平均GDP,输出格式完全匹配你想要的样式。
完整代码
def calculate_country_avg_gdp(file_path): # 用字典存每个国家的GDP数据列表,键是国家名,值是对应年份的GDP数值 country_gdp_records = {} # 安全读取文件,自动处理资源释放 with open(file_path, 'r', encoding='utf-8') as f: # 如果你的数据文件有表头,就跳过这一行;没有的话直接删掉下面这句 next(f) for line in f: # 分割每行数据,处理可能的多余空格 line_data = line.strip().split(',') if len(line_data) != 3: continue # 跳过格式错误的无效行 country, year, gdp_str = line_data # 尝试把GDP转成浮点数,跳过无法转换的无效数据 try: gdp = float(gdp_str) except ValueError: continue # 把GDP数据添加到对应国家的列表里 if country not in country_gdp_records: country_gdp_records[country] = [] country_gdp_records[country].append(gdp) # 计算平均GDP并整理成目标格式 output_parts = [] for country, gdp_list in country_gdp_records.items(): # 确保是完整的十年数据,如果你允许缺失年份,可去掉这个判断 if len(gdp_list) == 10: avg_gdp = sum(gdp_list) / len(gdp_list) # 保留1位小数,和示例格式一致 output_parts.append(f"{country}: {avg_gdp:.1f}") # 用空格连接所有结果并输出 print(' '.join(output_parts)) # 替换成你的实际数据文件路径,比如'gdp_data.csv' calculate_country_avg_gdp('your_gdp_file.csv')
代码细节说明
- 数据存储逻辑:用字典
country_gdp_records分类存储每个国家的GDP数据,后续计算平均值非常方便。 - 数据清洗处理:自动跳过格式错误、GDP无法转成数字的行,避免程序崩溃,保证结果准确性。
- 结果格式化:严格按照你给出的示例格式输出,每个国家的平均GDP保留1位小数,用空格分隔所有条目。
适配你的数据格式
如果你的数据文件是纯文本(无表头),比如每行是国家 年份 GDP(空格分隔),只需要把代码里的line_data = line.strip().split(',')改成line_data = line.strip().split()即可。
举个数据行的例子:
澳大利亚 2013 1200000000000.0
澳大利亚 2014 1250000000000.0
...(后续8年数据)
运行程序后,就能得到你想要的输出结果啦。
内容的提问来源于stack exchange,提问作者D.Ronald
相关产品推荐
相关产品推荐

