Python数据分析:年龄与收入关系可视化
Python数据分析:年龄与收入关系可视化
现代劳动关系的分析主要体现在收入上,年龄阶段的幸福度也跟收入有关。分析年龄与收入的关系变化很有意义。具体需要用到Python编程语言的csv模块读取数据文件, 用到Python基础语法计算某年龄平均收入, 用到matplotlib模块进行结果的柱状图和折线图绘制,请根据提供的数据文件完成以下操作:
- 创建工程data_analysis,将数据文件放入工程,路径为./data_file/income.csv。
- 创建python文件,导入csv及numpy, matplotlib.pyplot模块。
- 读取数据文件,将年龄,收入存入数组。
- 删除温度字段数据的NaN值,也就是数据清洗的空值删除。
- 计算同年龄的平均收入。
- 将年龄作为x轴数据, 收入作为y轴数据。
- 根据提供的数据绘制柱形图。
- 根据提供的数据绘制折线图, 并设置折线图的各种样式。
以下是完成上述任务的Python代码:
import csv
import numpy as np
import matplotlib.pyplot as plt
# 读取数据文件,将年龄和收入存入数组
ages = []
incomes = []
with open('./data_file/income.csv', 'r') as file:
reader = csv.reader(file)
next(reader) # 跳过第一行标题行
for row in reader:
age = int(row[0])
income = float(row[1])
ages.append(age)
incomes.append(income)
# 数据清洗,删除收入字段的NaN值
ages = np.array(ages)
incomes = np.array(incomes)
valid_indices = np.where(~np.isnan(incomes)) # 找到收入字段非NaN值的索引
ages = ages[valid_indices]
incomes = incomes[valid_indices]
# 计算同年龄的平均收入
unique_ages = np.unique(ages)
average_incomes = []
for age in unique_ages:
average_income = np.mean(incomes[ages == age])
average_incomes.append(average_income)
# 绘制柱状图
plt.bar(unique_ages, average_incomes)
plt.xlabel('Age')
plt.ylabel('Average Income')
plt.title('Average Income by Age')
plt.show()
# 绘制折线图
plt.plot(unique_ages, average_incomes, marker='o', linestyle='-', color='b')
plt.xlabel('Age')
plt.ylabel('Average Income')
plt.title('Average Income by Age')
plt.grid(True)
plt.show()
注意:以上代码假设数据文件的格式为CSV文件,第一列为年龄,第二列为收入。代码中的路径'./data_file/income.csv'需要根据实际情况进行修改。
原文地址: https://www.cveoy.top/t/topic/fw1F 著作权归作者所有。请勿转载和采集!