Pandas Python 教程
- 编程知识
- 2023-05-30
- 9
一、数据结构介绍
Pandas 是一个强大的 Python 数据分析工具,能够轻松的处理结构化数据。Pandas 与 NumPy 类似,但主要用于数据维度不同的数据处理。
Pandas 中有两种主要的数据结构:Series 和 DataFrame。
1. Series:是一种一维数组数据结构,可以理解为带标签的 NumPy 数组。
import pandas as pd data = pd.Series([0.25, 0.5, 0.75, 1.0]) print(data)
2. DataFrame:是一种二维表格数据结构,可理解为 Series 的排列。其中每列都可以是不同的数据类型(数值、字符串、布尔值等)。
import pandas as pd data = {'name': ['Jack', 'Tom', 'Mary', 'Jim'], 'age': [18, 23, 20, 19], 'gender': ['male', 'male', 'female', 'male']} df = pd.DataFrame(data) print(df)
二、数据导入与输出
常见的数据导入格式包括 csv、excel、sql 等。
1. 读取 csv 文件
import pandas as pd df = pd.read_csv('data.csv', encoding='gbk') print(df.head())
2. 导出 csv 文件
import pandas as pd df.to_csv('data.csv', encoding='gbk', index=False)
三、数据清洗
数据清洗是指在处理数据时,对数据进行规范化、排序、筛选、去重等操作,使数据更加准确、清晰。
1. 缺失值处理
import pandas as pd import numpy as np df = pd.DataFrame({'A': [1, 2, np.nan, 4], 'B': [5, np.nan, 7, 8], 'C': [9, 10, 11, 12]}) print(df) df.dropna() # 删除有缺失值的行 df.dropna(axis=1) # 删除有缺失值的列 df.fillna(value=0) # 用 0 填充缺失值
2. 重复值处理
import pandas as pd df = pd.DataFrame({'A': [1, 1, 2, 3], 'B': [4, 5, 6, 6]}) df.duplicated() # 查找是否有重复值 df.drop_duplicates() # 删除重复值 df.drop_duplicates(['A']) # 根据指定列删除重复值
四、数据选择与操作
1. 选择列
import pandas as pd df = pd.DataFrame({'name': ['Jack', 'Tom', 'Mary', 'Jim'], 'age': [18, 23, 20, 19], 'gender': ['male', 'male', 'female', 'male']}) df['name'] # 选择一列 df[['name', 'age']] # 选择多列
2. 选择行
import pandas as pd df = pd.DataFrame({'name': ['Jack', 'Tom', 'Mary', 'Jim'], 'age': [18, 23, 20, 19], 'gender': ['male', 'male', 'female', 'male']}) df.iloc[1] # 根据行索引选择一行 df.iloc[1:3] # 根据行索引选择多行 df.loc[df['age'] > 20] # 根据条件选择多行
五、数据分组与聚合
数据分组与聚合是指将数据按照一定条件分组,然后对分组后的数据进行统计分析。
import pandas as pd data = {'name': ['Jack', 'Tom', 'Mary', 'Jim'], 'age': [18, 23, 20, 19], 'gender': ['male', 'male', 'female', 'male'], 'score': [80, 75, 90, 85]} df = pd.DataFrame(data) df.groupby('gender').mean() # 按性别分组,计算平均值
六、数据可视化
Pandas 支持多种数据可视化方式,包括折线图、柱状图、散点图等。
import pandas as pd import matplotlib.pyplot as plt data = pd.DataFrame({'name': ['Jack', 'Tom', 'Mary', 'Jim'], 'age': [18, 23, 20, 19], 'gender': ['male', 'male', 'female', 'male'], 'score': [80, 75, 90, 85]}) data.plot(x='name', y='score', kind='bar') plt.show()以上是 Pandas Python 教程的简单介绍,更多深入内容请参考官方文档。