为了账号安全,请及时绑定邮箱和手机立即绑定

Pandas实战:新手入门与初级教程

概述

本文详细介绍了Pandas库的基本用法和高级应用,涵盖了从安装导入到数据清洗、聚合、可视化等一系列操作。通过实战案例,展示了如何使用Pandas处理实际项目中的销售数据,帮助读者掌握Pandas实战技巧。

Pandas快速入门
安装与导入Pandas库

Pandas 是一个强大的 Python 库,用于数据处理和分析。在使用 Pandas 之前,首先需要安装该库。可以通过以下命令安装 Pandas:

pip install pandas

安装完成后,可以在 Python 脚本中导入 Pandas 库:

import pandas as pd
Pandas数据结构介绍

DataFrame

DataFrame 是 Pandas 中最常用的数据结构,类似于表格数据。它由行和列组成,每一列可以存储不同类型的数据。

data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'City': ['New York', 'Los Angeles', 'Chicago']
}

df = pd.DataFrame(data)
print(df)

Series

Series 是 Pandas 中的另一重要数据结构,它是一个一维数组,可以存储任意类型的数据,如数值、字符串等,并且每个数据都有与之对应的标签。

series = pd.Series([10, 20, 30])
print(series)
基本数据操作

创建DataFrame

可以通过多种方式创建 DataFrame。除了字典,还可以从列表或数组创建。

import numpy as np

data = np.array([['Alice', 25, 'New York'],
                 ['Bob', 30, 'Los Angeles'],
                 ['Charlie', 35, 'Chicago']])

df = pd.DataFrame(data, columns=['Name', 'Age', 'City'])
print(df)

读取数据

可以使用 Pandas 读取多种格式的数据文件,如 CSV、Excel、JSON 等。

# CSV 文件
df_csv = pd.read_csv('data.csv')
print(df_csv)

# Excel 文件
df_excel = pd.read_excel('data.xlsx')
print(df_excel)

保存数据

可以将 DataFrame 保存为多种格式的数据文件,如 CSV、Excel、JSON 等。

# 保存为 CSV 文件
df.to_csv('output.csv', index=False)

# 保存为 Excel 文件
df.to_excel('output.xlsx', index=False)
数据清洗与预处理
缺失值处理

识别缺失值

可以使用 isnull() 方法识别 DataFrame 中的缺失值。

df_missing = pd.DataFrame({
    'A': [1, 2, np.nan],
    'B': [5, np.nan, np.nan],
    'C': [1, 2, 3]
})

print(df_missing.isnull())

填充缺失值

可以使用 fillna() 方法填充缺失值。例如,可以用某一固定值填充,或用前一个值或后一个值填充。

df_filled = df_missing.fillna(0)
print(df_filled)

df_filled = df_missing.fillna(method='ffill')  # 前向填充
print(df_filled)

df_filled = df_missing.fillna(method='bfill')  # 后向填充
print(df_filled)

删除缺失值

可以使用 dropna() 方法删除含有缺失值的行或列。

df_dropped = df_missing.dropna()
print(df_dropped)
数据类型转换

可以使用 astype() 方法将数据类型转换为另一种类型。

df['Age'] = df['Age'].astype(float)
print(df['Age'])

df['Age'] = df['Age'].astype(int)
print(df['Age'])

df['Name'] = df['Name'].astype(str)
print(df['Name'])
去重与标准化操作

去重

可以使用 drop_duplicates() 方法删除 DataFrame 中重复的行。

data = {
    'Name': ['Alice', 'Bob', 'Alice', 'Charlie'],
    'Age': [25, 30, 25, 35]
}

df_duplicates = pd.DataFrame(data)
print(df_duplicates.drop_duplicates())

# 清洗数据并删除重复值
df_duplicates.drop_duplicates(inplace=True)
print(df_duplicates)

标准化操作

可以使用 str.lower() 方法将文本数据标准化,转换为小写。

df['Name'] = df['Name'].str.lower()
print(df['Name'])

# 去除空格
df['Name'] = df['Name'].str.strip()
print(df['Name'])

# 转换为大写
df['Name'] = df['Name'].str.upper()
print(df['Name'])
数据筛选与选择
基于条件筛选数据

可以使用布尔条件筛选 DataFrame 中的数据。

df_filtered = df[df['Age'] > 25]
print(df_filtered)

# 复合条件筛选
df_filtered = df[(df['Age'] > 25) & (df['City'] == 'New York')]
print(df_filtered)
选择特定行与列

可以使用 loc[]iloc[] 方法选择特定的行或列。

# 使用 loc 选择特定行和列
df_selected = df.loc[0:1, ['Name', 'Age']]
print(df_selected)

# 使用 iloc 选择特定行和列(基于位置)
df_selected = df.iloc[0:2, 0:2]
print(df_selected)
过滤与排序操作

过滤操作

可以使用布尔条件过滤 DataFrame 中的数据。

df_filtered = df[df['Age'] > 25]
print(df_filtered)

# 复合条件过滤
df_filtered = df[(df['Age'] > 25) & (df['City'] == 'New York')]
print(df_filtered)

排序操作

可以使用 sort_values() 方法对 DataFrame 进行排序。

df_sorted = df.sort_values(by='Age', ascending=False)
print(df_sorted)

# 按多个列排序
df_sorted = df.sort_values(by=['City', 'Age'], ascending=[True, False])
print(df_sorted)
数据聚合与转换
常用聚合函数

可以使用 sum(), mean(), max(), min() 等函数进行数据聚合操作。

# 求和
total_age = df['Age'].sum()
print(total_age)

# 平均值
avg_age = df['Age'].mean()
print(avg_age)

# 最大值
max_age = df['Age'].max()
print(max_age)

# 最小值
min_age = df['Age'].min()
print(min_age)
分组操作与分组统计

可以使用 groupby() 方法进行分组操作,并进行统计。

# 按城市分组求平均年龄
avg_age_by_city = df.groupby('City')['Age'].mean()
print(avg_age_by_city)

# 按多个列分组
avg_age_by_city_and_name = df.groupby(['City', 'Name'])['Age'].mean()
print(avg_age_by_city_and_name)
数据透视与合并

数据透视

可以使用 pivot_table() 方法进行数据透视操作。

# 创建一个数据透视表
pivot_table = pd.pivot_table(df, values='Age', index='City', columns='Name', aggfunc=np.mean)
print(pivot_table)

# 使用不同的聚合函数
pivot_table = pd.pivot_table(df, values='Age', index='City', columns='Name', aggfunc=np.sum)
print(pivot_table)

数据合并

可以使用 merge() 方法进行数据合并操作。

# 创建一个包含额外信息的 DataFrame
extra_data = pd.DataFrame({
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Salary': [50000, 60000, 70000]
})

# 合并两个 DataFrame
merged_df = pd.merge(df, extra_data, on='Name')
print(merged_df)
数据可视化基础
使用Matplotlib进行基本图表绘制

可以使用 matplotlib 库进行基本图表绘制。

import matplotlib.pyplot as plt

df.plot(x='Name', y='Age', kind='bar')
plt.show()
Pandas内置的可视化工具

Pandas 自带一些基本的可视化工具,可以通过 plot() 方法进行图表绘制。

df.plot(kind='bar', x='Name', y='Age')
plt.show()
常见数据分布与趋势图表展示

可以绘制常见的数据分布与趋势图表,如直方图、散点图、折线图等。

df.plot(kind='hist', x='Age', bins=5)
plt.show()

df.plot(kind='scatter', x='Age', y='Salary')
plt.show()

df.plot(kind='line', x='Name', y='Age')
plt.show()
更多图表类型

可以使用更多图表类型,如饼图、箱形图等,并且可以增加图表的美化步骤,例如调整颜色、标题等。

df.plot(kind='pie', y='Age', autopct='%1.1f%%')
plt.show()

df.plot(kind='box')
plt.show()
实战案例:分析与应用
实战项目选择与规划

选择一个实际项目,例如分析一个包含销售数据的 CSV 文件。首先,定义项目目标和数据需求,然后收集和清洗数据。

数据分析全流程演示

数据收集与导入

sales_data = pd.read_csv('sales_data.csv')
print(sales_data.head())

数据清洗与预处理

# 处理缺失值
sales_data.fillna(0, inplace=True)

# 转换数据类型
sales_data['Date'] = pd.to_datetime(sales_data['Date'])

# 标准化数据
sales_data['Product'] = sales_data['Product'].str.lower()

数据分析与可视化

# 计算总销售额
total_sales = sales_data['Sales'].sum()

# 按产品分组计算总销售额
sales_by_product = sales_data.groupby('Product')['Sales'].sum()

# 绘制销售趋势图
sales_data.plot(x='Date', y='Sales', kind='line')
plt.show()
解决实际问题中的Pandas应用

通过上述操作,可以对销售数据进行全面分析,找出销售趋势和问题点。例如,可以分析哪些产品销售额较高,是否有季节性波动等。

# 按季度分组计算总销售额
sales_data['Quarter'] = sales_data['Date'].dt.quarter
sales_by_quarter = sales_data.groupby('Quarter')['Sales'].sum()

# 绘制季度销售趋势图
sales_by_quarter.plot(kind='bar')
plt.show()

通过这些步骤,你将能够有效地使用 Pandas 进行数据分析,解决实际问题。继续深入学习 Pandas,你将能够处理更复杂的数据集和问题。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消