目录
引言:
在当今数据驱动的世界中,数据分析成为了一项重要的技能。Python作为一种功能强大且易于学习的编程语言,被广泛应用于数据分析领域。本文将为您提供一份完整的Python数据分析指南,帮助您入门并掌握数据分析的基本步骤和常用工具。
第一部分:准备工作
在开始数据分析之前,我们需要进行一些准备工作。首先,确保您已经安装了Python解释器。然后,使用pip命令安装以下常用数据分析库:NumPy、Pandas和Matplotlib。这些库将成为您进行数据分析的重要工具。
可以启动cmd进行安装所需的库,安装指令为pip install 包名
#安装pandas库
pip install pandas
也可以使用清华镜像进行安装(速度比较快)
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名
第二部分:数据收集和导入
数据分析的第一步是收集数据并将其导入Python环境。Python提供了各种库和函数来读取各种数据源,如CSV文件、Excel文件、数据库等。使用Pandas库中的函数可以轻松地导入数据,并将其转换为数据分析所需的数据结构,如DataFrame。以下例子是导入csv文件,如需导入其他类型文件需修改读取文件的类型。
#导入pandas库
import pandas as pd
#把数据存储在df变量中
df=pd.read_csv(r'读取文件的路径.csv',
sep=',',
encoding='gbk'
)
df#打印数据
第三部分:数据清洗和预处理
数据通常包含缺失值、异常值和重复值。在进行数据分析之前,我们需要对数据进行清洗和预处理,以确保数据的质量和准确性。使用Pandas库提供的函数可以处理缺失值、删除重复值和处理异常值。此外,还可以进行数据类型转换、数据标准化等操作。
去重方法.drop_duplicates()
去重概念:删除某个序列或者是表格中某个序列中的重复值。
去重方法:DataFrame表格和Series序列对象内置方法.drop_duplicates()。
语法结构:表格/序列对象.drop_duplicates(subest=None,keep='first',inplace=False)
参数 | 作用 |
subset | 当去重对象是表格时使用,指定去重依据的字段 |
keep | 指定去重后保留哪一行,first是第一行,last表示最后一行 |
inplace | 表示去重是否对在原始数据对象上进行 |
对Dataframe表格对象去重,通过subset参数指定通过哪一列数据来去重
处理缺失值(替换法、删除法)
缺失值的定义:在现实的数据的产生场景中,由于人为原因或系统原因导致的数据缺失问题
在不确定表格数据本身是否有缺失值可用 表格对象.isnull() 方法返回数据是否缺失的布尔值矩阵。
返回各列的缺失值数量可用 表格对象.isnull().sum() 方法
删除法处理缺失值:
删除法:删除某个缺失数据所在的行的所有数据。
语法结构:表格对象.dropna(axis=0,how='any',subset=None,inplace=False)
+ axis:0或1,0表示删除行数据,1表示删除列数据,默认为0
+ subset:指定要删除的缺失值来自哪一(几)列
+ how:对表格对象多个字段的缺失值进行删除时使用。'any'表示任何一个字段有缺失就删除。'all'表示所有字段都缺失才删除。
+ inplace:数据删除是否在原表中生效
替换法处理缺失值:
创建数据:
df_nan2= pd.DataFrame(
[['甲',80,np.nan],[np.nan,90,'1班'],['乙',np.nan,'1班']],
columns=['姓名','分数','班级']
)
df_nan2
平均值法:
# 平均值法填充分数
df_nan2['分数'] = df_nan2['分数'].fillna(df_nan2['分数'].mean())
df_nan2
众数法:
# 众数法填充班级
df_nan2['班级'] = df_nan2['班级'].fillna(df_nan2['班级'].mode()[0])
df_nan2
特殊法:
# 特殊值法填充姓名
df_nan2['姓名'] = df_nan2['姓名'].fillna('某某')
df_nan2
第四部分:数据探索和可视化
数据探索是数据分析的重要环节。通过对数据进行统计描述、数据分布可视化、相关性分析等,我们可以更好地理解数据。Pandas和Matplotlib库提供了丰富的函数和方法来进行数据探索和可视化。通过绘制直方图、散点图、箱线图等图表,我们可以发现数据中的模式和趋势。
直方图:
import pandas as pd
import matplotlib.pyplot as plt
#导入数据
df=pd.read_excel('航空公司数据.xlsx')
df
#画图
plt.rcParams['font.family']='SimHei'#解决中文乱码
plt.figure(figsize=(10,6))
plt.subplot(2,1,1)
min_df=int(df['飞行次数'].min())
max_df=int(df['飞行次数'].max())
plt.hist(
df['飞行次数'],
bins=[i for i in range(min_df,max_df,5)]
)
plt.xlabel("飞行次数")
plt.ylabel("人数")
plt.title("用户飞行次数直方图")
plt.show()
散点图:
#导入相关的库
import pandas as pd
from pyecharts.charts import Scatter
from pyecharts import options as opts
#读取数据
df=pd.read_excel('航空公司数据.xlsx')
x=df['年龄'].tolist()
y=df['飞行次数'].tolist()
c=(
Scatter()
.add_xaxis(x)
.add_yaxis(
'',
y,
label_opts=opts.LabelOpts(is_show=False)
)
.set_global_opts(
xaxis_opts=opts.AxisOpts(type_='value')
)
)
c.render_notebook()
箱型图:
import pandas as pd
import matplotlib.pyplot as plt
#导入数据
df=pd.read_excel('航空公司数据.xlsx')
df
#画图
plt.rcParams['font.family']='SimHei'#解决中文乱码
plt.figure(figsize=(10,6))
plt.subplot(2,1,1)
min_df=int(df['飞行次数'].min())
max_df=int(df['飞行次数'].max())
plt.boxplot(
df['飞行次数'].dropna(),
vert=False,
labels=['飞行次数'],
whis=3
)
plt.show()
第六部分:结果呈现和报告
将数据分析的结果以可视化图表或报告的形式呈现出来,是与他人分享和传达分析结果的重要方式。使用Matplotlib和其他可视化库可以创建各种图表,如柱状图、折线图、热力图等。此外,使用Jupyter Notebook或其他工具编写数据分析报告,可以将代码、分析结果和解释整合在一起,使报告更具可读性和可复现性。
结论:
本文提供了一份完整的Python数据分析指南,涵盖了数据分析的基本步骤和常用工具。通过学习这些基础知识,您可以开始进行简单的数据分析,并逐渐深入探索更复杂的数据分析技术。数据分析是一项持续学习和实践的过程,希望本文能为您在数据分析的旅程中提供帮助和指导。
希望这篇博客对您有所帮助!如果您有任何问题或需要进一步的帮助,请随时提问。