Python数据分析的详细指南(复习篇)

一、Python数据分析的崛起

Python最初被设计为一种通用的、解释型的高级编程语言,用于多种应用,包括网站开发、脚本编写、自动化运维等。然而,随着数据科学的兴起,Python逐渐在数据分析领域崭露头角。其强大的数据处理能力、丰富的数据分析库以及活跃的社区支持,使得Python成为了数据分析师和数据科学

家的首选工具。

二、Python数据分析的核心库:

Python数据分析的核心库主要包括NumPy、Pandas、Matplotlib、Seaborn和Scikit-Learn等。

三、掌握NumPy数组对象

1、创建NumPy数组以下是一些示例:

import numpy as np  
  
# 使用numpy.array()从Python列表创建数组  
arr1 = np.array([1, 2, 3, 4, 5])  
  
# 使用numpy.zeros()创建指定形状的全零数组  
arr2 = np.zeros((3, 3))  
  
# 使用numpy.ones()创建指定形状的全一数组  
arr3 = np.ones((2, 2))  
  
# 使用numpy.arange()创建指定范围的数组  
arr4 = np.arange(0, 10, 2)  # 从0开始,到10(不包括),步长为2

2、NumPy数组索引和切片

# 索引  
element = arr1[2]  # 获取第三个元素  
  
# 切片  
slice_of_arr = arr1[1:4]  # 获取第二个到第四个元素(不包括第四个)

3、重塑:

# 将一维数组重塑为二维数组  
reshaped_arr = arr1.reshape((1, 5))

4、NumPy数组的数学运算(矩阵、函数):

# 元素级运算  
arr7 = np.array([1, 2, 3])  
arr8 = np.array([4, 5, 6])  
elementwise_sum = arr7 + arr8  
  
# 聚合运算  
sum_of_arr = np.sum(arr7)  
mean_of_arr = np.mean(arr7)  
  
# 线性代数运算(需要二维数组)  
A = np.array([[1, 2], [3, 4]])  
B = np.array([[5, 6], [7, 8]])  
matrix_product = np.dot(A, B)  # 矩阵乘法

四、Pandas统计分析基础

1、Pandas支持多种数据格式的读取,如CSV、Excel、SQL、JSON等。以下是一个使用Pandas读取CSV文件的示例:

import pandas as pd  
  
# 读取CSV文件  
df = pd.read_csv('data.csv')  
  
# 显示数据的前几行  
print(df.head())

2、数据清洗是数据分析中不可或缺的一步,Pandas提供了丰富的数据清洗功能,如缺失值处理、重复值处理、数据类型转换等。

# 处理缺失值  
df.fillna(value=0, inplace=True)  # 将缺失值填充为0  
  
# 删除重复行  
df.drop_duplicates(inplace=True)  
  
# 数据类型转换  
df['column_name'] = df['column_name'].astype('float')

3、Pandas提供了多种数据筛选的方法,如基于条件表达式筛选、基于布尔索引筛选等。

# 基于条件表达式筛选  
filtered_df = df[df['column_name'] > 10]  
  
# 基于布尔索引筛选  
mask = (df['column_name1'] > 5) & (df['column_name2'] < 20)  
filtered_df = df[mask]

4、Pandas的groupby功能允许你根据一个或多个列的值对数据进行分组,并对每个组执行聚合操作。

# 根据'group_column'列的值对数据进行分组,并计算每组的平均值  
grouped = df.groupby('group_column').mean()  
print(grouped)

5、Pandas提供了许多统计分析方法,如描述性统计、相关性分析、假设检验等。以下是一些常用的统计分析方法示例:

# 描述性统计  
desc_stats = df.describe()  
print(desc_stats)  
  
# 相关性分析  
correlation_matrix = df.corr()  
print(correlation_matrix)  
  
# 假设检验(以t检验为例)  
from scipy import stats  
t_statistic, p_value = stats.ttest_ind(df['group1']['column_name'], df['group2']['column_name'])  
print(f"t statistic: {t_statistic}, p-value: {p_value}")

Pandas是一个功能强大的数据分析工具,通过掌握其基本数据结构和常用的统计分析方法,你可以更加高效地进行数据分析和处理。

五、使用Pandas进行数据预处理

0、Pandas是一个开源的Python库,它提供了快速、灵活且富有表达力的数据结构,以便你能够轻松地进行数据清洗、转换、分析和可视化。

1、在使用Pandas进行数据预处理之前,首先需要将数据加载到Python环境中。Pandas支持多种数据格式的读取,如CSV、Excel、SQL、JSON等。以下是一个使用Pandas读取CSV文件的示例:

import pandas as pd  
  
# 读取CSV文件  
df = pd.read_csv('data.csv')  
  
# 显示数据的前几行  
print(df.head())

2、处理缺失值:

# 替换缺失值为0  
df.fillna(0, inplace=True)  
  
# 删除包含缺失值的行  
df.dropna(inplace=True)

3、处理重复值:

# 删除重复行  
df.drop_duplicates(inplace=True)

4、删除不必要的列:

# 删除名为'column_to_drop'的列  
df.drop('column_to_drop', axis=1, inplace=True)

5、数据转换是数据预处理中另一个重要的步骤,它涉及到将数据转换为适合分析的形式。Pandas提供了多种数据转换的方法。

# 将'column_name'列的数据类型转换为整数  
df['column_name'] = df['column_name'].astype('int')

6、文本数据清洗:

# 将'text_column'列中的文本转换为小写并去除空格  
df['text_column'] = df['text_column'].str.lower().str.strip()

7、数据标准化和归一化

在机器学习和数据分析中,经常需要对数据进行标准化或归一化,以消除不同特征之间的量纲差异和尺度差异。Pandas本身并不直接提供数据标准化和归一化的功能,但你可以结合NumPy等库来实现这些操作。

import numpy as np  
  
# 数据标准化(Z-score标准化)  
df_standardized = (df - df.mean()) / df.std()  
  
# 数据归一化(Min-Max归一化)  
df_normalized = (df - df.

六、matplotlib、seaborn与pyecharts复习指南

1、我将带你入门三种常用的Python数据可视化库:matplotlib、seaborn和pyecharts,并展示它们的基本用法。

2、matplotlib是Python中最基础的数据可视化库之一,它提供了丰富的绘图接口和高度定制化的选项。下面是一个简单的matplotlib折线图示例:

import matplotlib.pyplot as plt  
import numpy as np  
  
# 创建数据  
x = np.linspace(0, 10, 100)  
y = np.sin(x)  
  
# 绘制折线图  
plt.plot(x, y)  
  
# 设置图表标题和坐标轴标签  
plt.title('Sin Curve')  
plt.xlabel('X-axis')  
plt.ylabel('Y-axis')  
  
# 显示图表  
plt.show()

3、seaborn是基于matplotlib的更高层次的数据可视化库,它提供了更简洁的接口和更美观的默认样式。seaborn特别擅长绘制统计图形,如直方图、箱线图、热力图等。下面是一个使用seaborn绘制直方图的示例:

import seaborn as sns  
import pandas as pd  
  
# 创建示例数据  
data = {'value': np.random.randn(1000)}  
df = pd.DataFrame(data)  
  
# 绘制直方图  
sns.histplot(df['value'], kde=True)  
  
# 设置图表标题  
plt.title('Histogram with KDE')  
  
# 显示图表  
plt.show()
4、pyecharts是一个基于ECharts的Python数据可视化库,它支持生成丰富的交互式图表,如柱状图、折线图、饼图、地图等。pyecharts的图表不仅美观,而且支持在网页中嵌入,非常适合用于制作数据报告或在线仪表盘。下面是一个使用pyecharts绘制柱状图的示例:
from pyecharts.charts import Bar  
from pyecharts import options as opts  
  
# 创建数据  
categories = ["Category A", "Category B", "Category C", "Category D", "Category E"]  
values = [10, 20, 30, 40, 50]  
  
# 初始化柱状图对象  
bar = Bar()  
  
# 添加X轴和Y轴的数据  
bar.add_xaxis(categories)  
bar.add_yaxis("Series", values)  
  
# 设置全局配置项  
bar.set_global_opts(title_opts=opts.TitleOpts(title="Bar Chart Example"))  
  
# 渲染图表到HTML文件  
bar.render("bar_chart.html")

5、matplotlib、seaborn和pyecharts都是强大的Python数据可视化库,它们各有特点,适用于不同的场景。

七、scikit-learn构建机器学习模型

1. 安装scikit-learn

在开始之前,确保你已经安装了scikit-learn库。你可以使用pip或conda来安装:

pip install -U scikit-learn  
# 或者  
conda install scikit-learn

2. 导入必要的库和模块

import numpy as np  
import pandas as pd  
from sklearn.model_selection import train_test_split  
from sklearn.linear_model import LinearRegression  
from sklearn.metrics import mean_squared_error

3. 加载数据

from sklearn.datasets import load_boston  
  
# 加载波士顿房价数据集  
boston = load_boston()  
X = boston.data  
y = boston.target  
  
# 将数据集拆分为训练集和测试集  
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

4. 选择模型并训练

# 实例化线性回归模型  
model = LinearRegression()  
  
# 训练模型  
model.fit(X_train, y_train)

5. 预测和评估

# 使用模型进行预测  
y_pred = model.predict(X_test)  
  
# 计算均方误差(MSE)作为评估指标  
mse = mean_squared_error(y_test, y_pred)  
print(f'Mean Squared Error: {mse}')

6. 模型保存和加载

# 保存模型到文件  
from sklearn.externals import joblib  
joblib.dump(model, 'model.pkl')  
  
# 从文件加载模型  
loaded_model = joblib.load('model.pkl')

八、复习总结:

python的复习到这里了,共七大点可跳点观看复习,祝各位都有好成绩哟!

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值