网站搭建交流群,征求网站建设意见的通知,wordpress个人站无法升级,四川手机网站建设数据处理与可视化#xff1a;pandas 和 matplotlib 初体验#xff08;9/10#xff09;
介绍
在如今的数据驱动时代#xff0c;掌握数据处理与可视化是每个开发者和数据科学家不可或缺的技能。Python 拥有强大的数据处理库 pandas 和数据可视化库 matplotlib#xff0c;它…数据处理与可视化pandas 和 matplotlib 初体验9/10
介绍
在如今的数据驱动时代掌握数据处理与可视化是每个开发者和数据科学家不可或缺的技能。Python 拥有强大的数据处理库 pandas 和数据可视化库 matplotlib它们可以帮助我们轻松地处理复杂的数据并以直观的方式展示结果。在本篇文章中我们将深入学习如何使用 pandas 和 matplotlib 进行数据处理和可视化从而更好地理解和分析数据。
pandas 库简介
pandas 是一个用于数据处理和分析的强大库提供了数据结构 Series 和 DataFrame它们可以用来处理各种表格数据和时间序列数据。
创建 Series 和 DataFrame Series 是一维的、带有索引的数组。 DataFrame 是二维的、类似于电子表格的结构包含行和列。
import pandas as pd# 创建一个 Series
data [10, 20, 30, 40, 50]
series pd.Series(data, index[a, b, c, d, e])
print(Series:\n, series)# 创建一个 DataFrame
data {姓名: [Alice, Bob, Charlie],年龄: [25, 30, 35],成绩: [88, 92, 79]
}
df pd.DataFrame(data)
print(DataFrame:\n, df)
输出
Series:
a 10
b 20
c 30
d 40
e 50
dtype: int64DataFrame:姓名 年龄 成绩
0 Alice 25 88
1 Bob 30 92
2 Charlie 35 79
读取和写入数据
pandas 可以读取和写入多种文件格式例如 CSV、Excel、SQL 数据库等。
读取 CSV 文件
df pd.read_csv(data.csv)
print(CSV 文件内容:\n, df)
写入 CSV 文件
df.to_csv(output.csv, indexFalse)
方法描述示例pd.read_csv()读取 CSV 文件df pd.read_csv(data.csv)df.to_csv()将 DataFrame 写入 CSV 文件df.to_csv(output.csv)pd.read_excel()读取 Excel 文件df pd.read_excel(data.xlsx)df.to_excel()将 DataFrame 写入 Excel 文件df.to_excel(output.xlsx)
数据处理与分析
数据处理是数据分析的关键步骤pandas 提供了丰富的操作来处理数据例如筛选、排序、分组等。
数据筛选与过滤
我们可以根据特定的条件筛选 DataFrame 中的行。
# 创建一个 DataFrame
data {姓名: [Alice, Bob, Charlie, David, Eva],年龄: [25, 22, 23, 24, 21],成绩: [85, 78, 92, 88, 76]
}
df pd.DataFrame(data)# 筛选成绩大于 80 的行
filtered_df df[df[成绩] 80]
print(成绩大于 80 的学生:\n, filtered_df)
输出
成绩大于 80 的学生:姓名 年龄 成绩
0 Alice 25 85
2 Charlie 23 92
3 David 24 88
数据分组与聚合
通过 groupby() 方法我们可以对数据进行分组并进行聚合操作例如计算平均值、最大值等。
# 按年龄进行分组计算每个年龄的平均成绩
grouped df.groupby(年龄)[成绩].mean()
print(按年龄分组后的平均成绩:\n, grouped)
数据清洗
数据清洗是确保数据质量的关键步骤例如处理缺失值、去除重复行等。
# 处理缺失值
# 创建带有缺失值的 DataFrame
data {姓名: [Alice, Bob, Charlie, None],年龄: [25, None, 35, 28],成绩: [88, 92, None, 85]
}
df pd.DataFrame(data)# 填充缺失值
filled_df df.fillna({姓名: 未知, 年龄: df[年龄].mean(), 成绩: 0})
print(填充缺失值后的 DataFrame:\n, filled_df)
输出
填充缺失值后的 DataFrame:姓名 年龄 成绩
0 Alice 25.000000 88.0
1 Bob 29.333333 92.0
2 Charlie 35.000000 0.0
3 未知 28.000000 85.0
数据操作描述示例数据筛选根据条件筛选行df[df[成绩] 80]数据分组与聚合按某列分组并计算统计量df.groupby(年龄)[成绩].mean()缺失值处理填充或去除缺失值df.fillna(value)
数据可视化入门matplotlib
matplotlib 是 Python 最流行的数据可视化库之一它允许我们绘制折线图、柱状图、散点图等以直观地展示数据分析的结果。
绘制折线图
折线图通常用于展示数据的变化趋势。
import matplotlib.pyplot as plt# 数据
months [一月, 二月, 三月, 四月, 五月]
sales [3000, 3200, 3500, 4000, 4200]# 绘制折线图
plt.plot(months, sales, markero)
plt.xlabel(月份)
plt.ylabel(销售额 (元))
plt.title(月销售额趋势)
plt.grid()
plt.show()
绘制柱状图
柱状图用于比较不同类别的数据。
# 数据
names [Alice, Bob, Charlie, David, Eva]
scores [85, 78, 92, 88, 76]# 绘制柱状图
plt.bar(names, scores, colorskyblue)
plt.xlabel(姓名)
plt.ylabel(成绩)
plt.title(学生成绩对比图)
plt.show()
绘制散点图
散点图用于展示两组数据之间的关系。
# 数据
age [22, 25, 30, 35, 40, 45, 50]
salary [2500, 2700, 3000, 3400, 3700, 4000, 4300]# 绘制散点图
plt.scatter(age, salary, colorgreen)
plt.xlabel(年龄)
plt.ylabel(工资 (元))
plt.title(年龄与工资的关系)
plt.show()
图表类型描述示例折线图展示数据的变化趋势plt.plot()柱状图比较不同类别的数据plt.bar()散点图展示两组数据之间的关系plt.scatter()
综合示例学生成绩分析与可视化
在这个综合示例中我们将结合 pandas 和 matplotlib对学生成绩进行分析并将结果进行可视化展示。
示例分析并可视化学生成绩 创建一个包含学生姓名、年龄和成绩的数据表。 计算平均成绩并筛选成绩高于平均值的学生。 使用柱状图可视化每位学生的成绩。
import pandas as pd
import matplotlib.pyplot as plt# 创建 DataFrame
data {姓名: [Alice, Bob, Charlie, David, Eva],年龄: [25, 22, 23, 24, 21],成绩: [85, 78, 92, 88, 76]
}
df pd.DataFrame(data)# 计算平均成绩
average_score df[成绩].mean()
print(f平均成绩: {average_score:.2f})# 筛选成绩高于平均值的学生
above_average_df df[df[成绩] average_score]
print(成绩高于平均值的学生:\n, above_average_df)# 可视化学生成绩
plt.bar(df[姓名], df[成绩], colororange)
plt.xlabel(姓名)
plt.ylabel(成绩)
plt.title(学生成绩柱状图)
plt.axhline(yaverage_score, colorr, linestyle--, labelf平均成绩: {average_score:.2f})
plt.legend()
plt.show()
输出
平均成绩: 83.80
成绩高于平均值的学生:姓名 年龄 成绩
0 Alice 25 85
2 Charlie 23 92
3 David 24 88
此图展示了每位学生的成绩红色虚线表示平均成绩可以直观地看到哪些学生的成绩高于平均值。
总结
在本篇文章中我们学习了如何使用 pandas 进行数据处理和分析包括数据的读取、清洗、筛选和分组等操作。随后我们学习了如何使用 matplotlib 进行数据可视化绘制了折线图、柱状图和散点图。最后通过一个综合示例我们结合 pandas 和 matplotlib 对学生成绩进行了分析与可视化展示。通过掌握这些工具和技巧你将能够更好地处理数据并从中提取有用的信息。
在下一篇文章中我们将完成一个综合的小项目把之前学习的所有知识整合在一起进一步加深对 Python 编程的理解。敬请期待