Pandas简介

Pandas 是一个强大的 Python 库,专门用于数据操作和分析。它提供了高效的数据结构(如 DataFrameSeries),使得处理结构化数据(如 CSV 文件、Excel 表格、SQL 数据库等)变得非常简单。Pandas 是数据科学、机器学习和数据分析领域的核心工具之一。

以下是关于 Pandas 的详细介绍和使用指南:

1. Pandas 的核心数据结构

Pandas 提供了两种主要的数据结构:

  • Series:一维数组,类似于带标签的列表。
  • DataFrame:二维表格,类似于 Excel 表格或 SQL 表。

示例:创建 Series 和 DataFrame

import pandas as pd

# 创建 Series
s = pd.Series([1, 3, 5, 7, 9])
print(s)

# 创建 DataFrame
data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'City': ['New York', 'Los Angeles', 'Chicago']
}
df = pd.DataFrame(data)
print(df)

2. 数据读取与写入

Pandas 支持从多种文件格式读取数据,并可以将数据写入文件。

读取数据

# 从 CSV 文件读取
df = pd.read_csv('data.csv')

# 从 Excel 文件读取
df = pd.read_excel('data.xlsx')

# 从 SQL 数据库读取
import sqlite3
conn = sqlite3.connect('database.db')
df = pd.read_sql_query('SELECT * FROM table_name', conn)

写入数据

# 写入 CSV 文件
df.to_csv('output.csv', index=False)

# 写入 Excel 文件
df.to_excel('output.xlsx', index=False)

# 写入 SQL 数据库
df.to_sql('table_name', conn, if_exists='replace', index=False)

3. 数据查看与探索

Pandas 提供了多种方法查看和探索数据。

查看数据

# 查看前 5 行
print(df.head())

# 查看后 5 行
print(df.tail())

# 查看数据信息
print(df.info())

# 查看统计信息
print(df.describe())

数据筛选

# 筛选列
print(df['Name'])

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

# 多条件筛选
print(df[(df['Age'] > 25) & (df['City'] == 'New York')])

4. 数据清洗

数据清洗是数据分析的重要步骤,Pandas 提供了丰富的功能来处理缺失值、重复值和异常值。

处理缺失值

# 检查缺失值
print(df.isnull())

# 删除缺失值
df_cleaned = df.dropna()

# 填充缺失值
df_filled = df.fillna(0)

处理重复值

# 检查重复值
print(df.duplicated())

# 删除重复值
df_unique = df.drop_duplicates()

5. 数据操作

Pandas 支持多种数据操作,如排序、分组、合并等。

排序

# 按列排序
df_sorted = df.sort_values(by='Age', ascending=False)
print(df_sorted)

分组

# 按列分组并计算平均值
df_grouped = df.groupby('City')['Age'].mean()
print(df_grouped)

合并

# 合并两个 DataFrame
df1 = pd.DataFrame({'A': ['A0', 'A1'], 'B': ['B0', 'B1']})
df2 = pd.DataFrame({'A': ['A2', 'A3'], 'B': ['B2', 'B3']})
df_merged = pd.concat([df1, df2])
print(df_merged)

6. 数据可视化

Pandas 集成了 Matplotlib,可以直接绘制图表。

绘制图表

import matplotlib.pyplot as plt

# 绘制柱状图
df['Age'].plot(kind='bar')
plt.show()

# 绘制散点图
df.plot(kind='scatter', x='Age', y='City')
plt.show()

7. 高级功能

Pandas 还支持许多高级功能,如时间序列分析、数据透视表等。

时间序列分析

# 创建时间序列
dates = pd.date_range('20230101', periods=6)
df_time = pd.DataFrame({'Date': dates, 'Value': [1, 3, 5, 7, 9, 11]})
print(df_time)

# 按时间筛选
print(df_time[df_time['Date'] > '20230103'])

数据透视表

# 创建数据透视表
df_pivot = df.pivot_table(values='Age', index='City', aggfunc='mean')
print(df_pivot)

8. 性能优化

对于大规模数据集,Pandas 的性能可能会成为瓶颈。以下是一些优化方法:

  • 使用 dtype 指定数据类型:减少内存占用。
  • 使用 chunksize 分块读取数据:避免内存不足。
  • 使用 NumPy 或 Dask:替代 Pandas 处理超大规模数据。

总结

  • Pandas 是 Python 中用于数据操作和分析的核心库。
  • 它提供了 SeriesDataFrame 两种主要数据结构。
  • 支持数据读取、清洗、操作、可视化和高级分析。
  • 适用于数据科学、机器学习和数据分析等领域。
AI自动测试化入门到精通 文章被收录于专栏

如何做AI自动化测试

全部评论

相关推荐

一·语言方面:由于很多大数据框架都是基于JAVA开发的,个人认为JAVA语言是必不可少的,有余力的话可以去掌握以下PYTHON😊二·数据结构与算法:大二课上没好好学,现在只能再补一遍了,悲😣打算刷完Leetcode的Hot100就先放一边,等秋招再刷别的题😇三·MYSQL:一个关系型数据库管理系统,SQL BOY的开始,初步领略通过建表来管理数据的思想,学完可以去刷一下基础50题和进阶50题(虽然本菜鸡只刷了基础50😓)四·Linux:会安装虚拟机,掌握常见linux常见命令即可五·Hadoop:一个分布式计算框架。所谓分布式,就是将一台电脑无法处理的数据量分散给一个由多台电脑组成的计算机集群来处理,互相分工,彼此合作,形成一个有机整体。框架分为三部分:HDFS(数据存储),MapReduce(数据计算),Yarn(资源调度)。虽然MapReduce已经逐渐被Spark淘汰,但思想依然值得借鉴。高可用机制也应当学习六·Maven:会用即可,打包项目用的七·Hive:也是一种SQL,有了MYSQL的基础应该还算好理解八·Scala和Spark:Spark是用Scala写的,在学习之前得先浏览一遍基本语法。Spark是基于内存的批式计算引擎,已经逐渐取代MapReduce(基于磁盘的计算引擎),APACHE也基本上停止了对MapReduce的更新(经典白学😃)。将来很多离线数仓项目也都是基于SPARK的,可以说非常重要了九·Kafka,Hbase,Flume和ZooKeeper:都是一些小组件,将来面试可能会问到十·Flink:一个流式实时计算引擎,本人JAVA基础较弱,听的时候也是懵懵懂懂当然,仅仅这些肯定远远不够,本人将来还要学Doris,数仓建模理论,数仓项目,八股面经等等。上述理解如有错误还请友好指正(叠甲叠甲叠甲😱)。这些理论也只是匆匆过了一遍(大一太贪玩,大二2月份才开始学),发布笔记也只是记录自己的学习过程,提醒自己不要懈怠(还有当个免费网盘😏)。如果能帮助到你就更好了,虽然我也比较迷茫😖
点赞 评论 收藏
分享
06-26 10:10
已编辑
浙江理工大学 C++
6.20 一面(1小时)1.自我介绍2-?都是c++的基础八股,不难,忘了,提一下记得的,oop三特性,多态,虚函数,动态数组,vector,插入频繁用什么,智能指针,类构造和析构顺序(抢答成员初始化顺序)?+1 合并区间,应该是简单题?+2 设计一个动态数组,包含添加插入删除元素的功能6.24 二面(18分钟???)1.介绍一下校园或者是实习经历(没自我介绍)2.看你客户端,服务端,底层都有涉及,你更倾向于什么,为什么3.说c++八股一面问过了不问,问了爬楼梯4.有个画图功能,需要加入撤销恢复功能怎么设计5.一张a4纸上有若干点,每次查询随机给出一个圆心和半径,如何快速得到所有在圆内的点,答的自底向上的分块,引导自顶向下的分治6. 一枚质地不均匀的硬币,也就是抛出正反面的概率不一样,两个人需要通过抛硬币决定谁赢,怎么设计规则比较公平啊,二面过了,等6.25三面+hr面6.25 cto+hrbp(17分钟)1. 对方自我介绍2.跟2面的2一样3. 没八股,好像是问的项目中的某个问题,一开口就停不下来巴拉巴拉然后被打断了4.刚才提到实习中有搜索相关模块如果背包中有上万种物品,如何进行快速的搜索。5. 现在是能立即到岗吗6.反问7.跟2差不多8.提到习惯为用户考虑,有没有具体的例子9.对业务了解怎么样10.期望薪资11.现在是住在xx区吗12.反问问到引擎熟悉度,坏,破绽了6.26 三面过了,等安排终面
查看38道真题和解析
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务