什么是 Pandas?
Pandas 是一个强大的 Python 数据分析库,广泛用于数据清洗、处理和分析。它提供了大量的数据结构和操作工具,使得数据处理变得非常方便。今天,我们就来一起学习如何在 Python 中使用 Pandas 进行数据分析。
安装 Pandas
首先,你需要安装 Pandas。如果你还没有安装,可以使用以下命令:
pip install pandas
导入 Pandas
安装完成后,我们需要导入 Pandas 库。通常我们会使用 pd
作为别名,这样可以简化代码:
import pandas as pd
创建 DataFrame
DataFrame 是 Pandas 中最常用的数据结构,类似于 Excel 表格或 SQL 表。我们可以从多种数据源创建 DataFrame,比如列表、字典、CSV 文件等。
从列表创建 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
从 CSV 文件创建 DataFrame
假设你有一个名为 data.csv
的文件,内容如下:
Name,Age,City
Alice,25,New York
Bob,30,Los Angeles
Charlie,35,Chicago
你可以使用 read_csv
函数读取这个文件:
df = pd.read_csv('data.csv')
print(df)
输出:
Name Age City
0 Alice 25 New York
1 Bob 30 Los Angeles
2 Charlie 35 Chicago
查看 DataFrame 的基本信息
查看前几行
使用 head
方法可以查看 DataFrame 的前几行,默认显示前 5 行:
print(df.head())
输出:
Name Age City
0 Alice 25 New York
1 Bob 30 Los Angeles
2 Charlie 35 Chicago
查看后几行
使用 tail
方法可以查看 DataFrame 的后几行,默认显示后 5 行:
print(df.tail())
输出:
Name Age City
0 Alice 25 New York
1 Bob 30 Los Angeles
2 Charlie 35 Chicago
查看列名
使用 columns
属性可以查看 DataFrame 的列名:
print(df.columns)
输出:
Index(['Name', 'Age', 'City'], dtype='object')
查看数据类型
使用 dtypes
属性可以查看每列的数据类型:
print(df.dtypes)
输出:
Name object
Age int64
City object
dtype: object
数据选择和过滤
选择单列
使用列名可以直接选择单列:
print(df['Name'])
输出:
0 Alice
1 Bob
2 Charlie
Name: Name, dtype: object
选择多列
使用列名列表可以选择多列:
print(df[['Name', 'Age']])
输出:
Name Age
0 Alice 25
1 Bob 30
2 Charlie 35
条件过滤
使用条件表达式可以过滤数据:
filtered_df = df[df['Age'] > 30]
print(filtered_df)
输出:
Name Age City
2 Charlie 35 Chicago
数据排序
使用 sort_values
方法可以对 DataFrame 进行排序:
sorted_df = df.sort_values(by='Age', ascending=False)
print(sorted_df)
输出:
Name Age City
2 Charlie 35 Chicago
1 Bob 30 Los Angeles
0 Alice 25 New York
数据分组
使用 groupby
方法可以对数据进行分组:
grouped_df = df.groupby('City').mean()
print(grouped_df)
输出:
Age
City
Chicago 35.0
Los Angeles 30.0
New York 25.0
数据缺失值处理
检查缺失值
使用 isnull
方法可以检查 DataFrame 中的缺失值:
print(df.isnull())
输出:
Name Age City
0 False False False
1 False False False
2 False False False
填充缺失值
使用 fillna
方法可以填充缺失值:
df['Age'] = df['Age'].fillna(0)
print(df)
输出:
Name Age City
0 Alice 25 New York
1 Bob 30 Los Angeles
2 Charlie 35 Chicago
实战案例:分析股票数据
假设我们有一个包含股票价格的 CSV 文件 stock_data.csv
,内容如下:
Date,Open,High,Low,Close,Volume
2022-01-01,100,105,95,102,10000
2022-01-02,102,107,98,105,12000
2022-01-03,105,110,100,108,11000
2022-01-04,108,112,103,110,13000
2022-01-05,110,115,105,112,14000
我们将使用 Pandas 对这些数据进行分析。
读取数据
df = pd.read_csv('stock_data.csv')
print(df)
输出:
Date Open High Low Close Volume
0 2022-01-01 100 105 95 102 10000
1 2022-01-02 102 107 98 105 12000
2 2022-01-03 105 110 100 108 11000
3 2022-01-04 108 112 103 110 13000
4 2022-01-05 110 115 105 112 14000
计算每日涨跌幅
df['Change'] = df['Close'].pct_change() * 100
print(df)
输出:
Date Open High Low Close Volume Change
0 2022-01-01 100 105 95 102 10000 NaN
1 2022-01-02 102 107 98 105 12000 2.941176
2 2022-01-03 105 110 100 108 11000 2.857143
3 2022-01-04 108 112 103 110 13000 1.851852
4 2022-01-05 110 115 105 112 14000 1.818182
绘制收盘价趋势图
import matplotlib.pyplot as plt
plt.figure(figsize=(10, 5))
plt.plot(df['Date'], df['Close'], marker='o')
plt.title('Stock Closing Price Trend')
plt.xlabel('Date')
plt.ylabel('Closing Price')
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()
总结
本文介绍了如何在 Python 中使用 Pandas 进行数据分析。我们从安装和导入 Pandas 开始,逐步学习了如何创建 DataFrame、查看基本信息、选择和过滤数据、排序、分组、处理缺失值,以及一个实战案例——分析股票数据。
好了,今天的分享就到这里了,我们下期见。如果本文对你有帮助,请动动你可爱的小手指点赞、转发、在看吧!
付费合集推荐
文末福利
公众号消息窗口回复“编程资料”,获取Python编程、人工智能、爬虫等100+本精品电子书。