当前位置:首页 > 编程知识 > 正文

Pandas Python 教程

一、数据结构介绍

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 教程的简单介绍,更多深入内容请参考官方文档。