Python数据分析入门:使用Pandas和NumPy的基础教程
欢迎来到今天的“Python数据分析入门”讲座!如果你是第一次接触数据分析,或者对Python的Pandas和NumPy库感到好奇,那么你来对地方了。今天我们将用轻松诙谐的语言、通俗易懂的例子,带你快速上手这两个强大的工具。准备好了吗?让我们开始吧!
讲座大纲
- 开场白:数据分析是什么?
- NumPy基础:数组的力量
- Pandas基础:表格的艺术
- 实战演练:一起分析数据
- 总结与展望
1. 开场白:数据分析是什么?
数据分析就像侦探破案,只不过我们不是在寻找凶手,而是在海量数据中挖掘有用的信息。比如:
- 哪些商品最畅销?
- 用户最喜欢哪个时间段访问网站?
- 明天的股票价格会涨还是跌?
为了完成这些任务,我们需要一些得力助手,而Python中的NumPy和Pandas就是我们的最佳拍档!
2. NumPy基础:数组的力量
什么是NumPy?
NumPy(Numerical Python)是一个用于科学计算的Python库,它的核心是一个强大的多维数组对象ndarray
。简单来说,NumPy让你可以高效地处理数字数据。
创建一个NumPy数组
import numpy as np
# 创建一个一维数组
arr = np.array([1, 2, 3, 4, 5])
print("一维数组:", arr)
# 创建一个二维数组
matrix = np.array([[1, 2, 3], [4, 5, 6]])
print("二维数组:n", matrix)
数组的基本操作
NumPy数组支持广播(broadcasting),这意味着你可以轻松地对整个数组进行数学运算。
# 数组加法
result = arr + 10
print("数组加法:", result)
# 数组乘法
result = matrix * 2
print("矩阵乘法:n", result)
引用国外技术文档
NumPy的设计灵感来源于MATLAB,但比MATLAB更灵活。它不仅支持基本的数值运算,还提供了线性代数、傅里叶变换等功能。例如,np.linalg.inv()
可以用来求矩阵的逆。
3. Pandas基础:表格的艺术
什么是Pandas?
Pandas是一个强大的数据分析库,专注于结构化数据的处理。它的两大核心数据结构是Series
和DataFrame
。
- Series:类似于一维数组,带有一个索引。
- DataFrame:类似于Excel表格,有行和列。
创建一个DataFrame
import pandas as pd
# 创建一个简单的DataFrame
data = {
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['New York', 'Los Angeles', 'Chicago']
}
df = pd.DataFrame(data)
print(df)
输出结果:
Name Age City
0 Alice 25 New York
1 Bob 30 Los Angeles
2 Charlie 35 Chicago
数据筛选
Pandas让数据筛选变得非常简单。例如,找出年龄大于30的人:
older_than_30 = df[df['Age'] > 30]
print(older_than_30)
数据聚合
我们可以轻松地对数据进行统计分析。例如,计算每个人的平均年龄:
average_age = df['Age'].mean()
print("平均年龄:", average_age)
引用国外技术文档
Pandas的设计理念借鉴了R语言的数据框(data frame)。它的强大之处在于能够处理缺失值、重复值等问题,同时支持时间序列分析。
4. 实战演练:一起分析数据
假设我们有一份销售数据,包含商品名称、销售数量和销售额。我们想回答以下问题:
- 哪种商品的销售额最高?
- 总销售额是多少?
数据准备
sales_data = {
'Product': ['Apple', 'Banana', 'Orange', 'Apple', 'Banana'],
'Quantity': [10, 20, 15, 5, 10],
'Price': [1.5, 0.8, 1.2, 1.5, 0.8]
}
df_sales = pd.DataFrame(sales_data)
print(df_sales)
输出结果:
Product Quantity Price
0 Apple 10 1.5
1 Banana 20 0.8
2 Orange 15 1.2
3 Apple 5 1.5
4 Banana 10 0.8
计算销售额
df_sales['Revenue'] = df_sales['Quantity'] * df_sales['Price']
print(df_sales)
输出结果:
Product Quantity Price Revenue
0 Apple 10 1.5 15.0
1 Banana 20 0.8 16.0
2 Orange 15 1.2 18.0
3 Apple 5 1.5 7.5
4 Banana 10 0.8 8.0
分析结果
-
哪种商品的销售额最高?
top_product = df_sales.groupby('Product')['Revenue'].sum().idxmax() print("销售额最高的商品:", top_product)
-
总销售额是多少?
total_revenue = df_sales['Revenue'].sum() print("总销售额:", total_revenue)
5. 总结与展望
通过今天的讲座,我们学习了:
- NumPy如何处理数组数据。
- Pandas如何管理表格数据。
- 如何结合两者进行数据分析。
数据分析的世界远不止于此。未来,你可以深入学习:
- 数据可视化(Matplotlib、Seaborn)
- 机器学习(Scikit-learn)
- 大数据分析(Dask、Spark)
希望今天的课程能为你打开数据分析的大门!如果你有任何问题,欢迎随时提问。再见啦,下次见!