当前位置: 首页 > article >正文

【人工智能】Python常用库-Pandas常用方法教程

Pandas 是一个强大的 Python 数据处理和分析库,它提供了高效的数据结构和函数,用于清洗、操作和分析数据。以下是 Pandas 的常用方法及详细说明。


1. 安装和导入 Pandas

安装 Pandas:

pip install pandas

导入 Pandas:

import pandas as pd

2. 数据结构

2.1 Series(序列)

Series 是一维数据结构,类似于带标签的数组。

# 创建 Series
s = pd.Series([10, 20, 30, 40], index=['a', 'b', 'c', 'd'])
print(s)

输出结果

a    10
b    20
c    30
d    40
dtype: int64
2.2 DataFrame(数据框)

DataFrame 是二维数据结构,类似于表格。

# 创建 DataFrame
data = {'name': ['Alice', 'Bob', 'Charlie'],
        'age': [25, 30, 35],
        'gender': ['F', 'M', 'M'],
        'city': ['New York', "San Francisco", "Los Angeles"]}
df = pd.DataFrame(data)
print(df)

输出结果

      name  age gender           city
0    Alice   25      F       New York
1      Bob   30      M  San Francisco
2  Charlie   35      M    Los Angeles

3. 读取与保存数据

3.1 读取数据
  • 从 CSV 文件读取:

    df = pd.read_csv('data.csv')
    
  • 从 Excel 文件读取:

    df = pd.read_excel('data.xlsx', sheet_name='Sheet1')
    
3.2 保存数据
  • 保存为 CSV 文件:

    df.to_csv('output.csv', index=False)
    
  • 保存为 Excel 文件:

    df.to_excel('output.xlsx', index=False)
    

4. 基本操作

4.1 查看数据
  • 查看前几行:

    print(df.head(5))  # 默认前5行
  • 查看后几行:

    print(df.tail(5))

  • 数据基本信息:

    print(df.info())
    print(df.describe())  # 数值列的统计信息
    

 

4.2 选择数据
  • 选择列:

    print(df["Name"])  # 单列
    print(df[["Name", "Age"]])  # 多列
    
  • 选择行(按索引):

    print(df.loc[0])  # 按标签
    print(df.iloc[0])  # 按位置
    
  • 条件选择:

    print(df[df["Age"] > 30])  # 筛选 Age > 30 的行
    

5. 数据清洗

5.1 处理缺失值
  • 检查缺失值:

    print(df.isnull().sum())
  • 填充缺失值:

    df["Age"].fillna(df["Age"].mean(), inplace=True)
    
  • 删除含缺失值的行或列:

    df.dropna(inplace=True)  # 删除含缺失值的行
    
5.2 重命名列
df.rename(columns={"Name": "Full Name", "Age": "Years"}, inplace=True)

 6. 数据操作

6.1 排序
df.sort_values("Age", ascending=False, inplace=True)
6.2 添加与删除列
  • 添加新列:

    df["Salary"] = [50000, 60000, 70000]
    
  • 删除列:

    df.drop(columns=["City"], inplace=True)
    
6.3 分组与聚合
  • 按某列分组:
    grouped = df.groupby("City")
    print(grouped["Age"].mean())
    

7. 数据合并

7.1 合并(merge)
df1 = pd.DataFrame({"ID": [1, 2, 3], "Name": ["Alice", "Bob", "Charlie"]})
df2 = pd.DataFrame({"ID": [1, 2, 4], "Score": [85, 90, 95]})
merged_df = pd.merge(df1, df2, on="ID", how="inner")
print(merged_df)

输出结果

   ID   Name  Score
0   1  Alice     85
1   2    Bob     90
 7.2 拼接(concat)
df1 = pd.DataFrame({"Name": ["Alice", "Bob"], "Age": [25, 30]})
df2 = pd.DataFrame({"Name": ["Charlie", "David"], "Age": [35, 40]})
result = pd.concat([df1, df2], ignore_index=True)
print(result)

输出结果

      Name  Age
0    Alice   25
1      Bob   30
2  Charlie   35
3    David   40

8. 高级功能

8.1 透视表
pivot = df.pivot_table(values="Age", index="City", aggfunc="mean")
print(pivot)
8.2 时间序列
dates = pd.date_range("2024-01-01", periods=5)
df = pd.DataFrame({"Date": dates, "Value": [10, 20, 15, 25, 30]})
df.set_index("Date", inplace=True)
print(df)

输出结果

Date           Value   
2024-01-01     10
2024-01-02     20
2024-01-03     15
2024-01-04     25
2024-01-05     30
8.3 数据透视和多级索引
multi_df = df.set_index(["City", "Name"])
print(multi_df)

9. 数据可视化(与 Matplotlib 集成)

import matplotlib.pyplot as plt

df.plot(kind="bar", x="Name", y="Age")
plt.show()

10. 动态分析案例

案例:分析员工薪资分布
data = {
    "Department": ["HR", "IT", "HR", "IT", "Finance", "HR"],
    "Salary": [5000, 6000, 5200, 6500, 7000, 4800],
}
df = pd.DataFrame(data)

# 按部门分组,计算平均薪资
avg_salary = df.groupby("Department")["Salary"].mean()

# 绘图
avg_salary.plot(kind="bar", color="skyblue")
plt.title("Average Salary by Department")
plt.ylabel("Salary")
plt.show()


总结

Pandas 提供了丰富的功能,适用于数据读取、清洗、分析和可视化。通过熟悉上述方法,可以高效地完成数据处理任务,并为更深入的分析奠定基础。


http://www.kler.cn/a/409844.html

相关文章:

  • Yii对接人大金仓
  • FileLink内外网文件共享系统与FTP对比:高效、安全的文件传输新选择
  • 【大数据学习 | Spark-Core】广播变量和累加器
  • Apple Vision Pro开发003-PolySpatial2.0新建项目
  • 【计算机网络】网段划分
  • IDEA 2024安装指南(含安装包以及使用说明 cannot collect jvm options 问题 四)
  • Mybatis PLUS查询对List使用OR模糊查询
  • 读《Effective Java》笔记 - 条目7
  • C#基础控制台程序
  • stable Diffusion官方模型下载
  • 软件工程设计模式--结构型设计模式
  • 如何使用 PyCharm 工具连接远程服务器进行开发
  • Flume和kafka的整合:使用Flume将日志数据抽取到Kafka中
  • 打造智能化在线教育平台详解:教培网校APP的架构设计与实现
  • 【深度学习】【RKNN】【C++】模型转化、环境搭建以及模型部署的详细教程
  • 使用 Puppeteer 绕过 Captcha:实现商家数据自动化采集
  • 数据库连接池调优——可视化查询慢SQL利器
  • 1.Excel文本函数的使用
  • 通过map文件了解堆栈分配(STM32、MDK5)--避免堆栈溢出
  • 数学知识1
  • ubity3D基础
  • pytorchDay33
  • 【漏洞复现】CVE-2020-1956
  • 在接口实现时使用自定义对象的方法(非工具类,和单例模式)
  • Java中三种常用布局方式
  • Vue报错:error Mixed spaces and tabs no-mixed-spaces-and-tabs——报错处理