详细介绍pandas 在python中的用法

news/2024/10/8 20:39:12 标签: pandas, python, 开发语言

Pandas 是 Python 中非常流行的数据分析和处理库,特别适用于处理结构化数据。它构建在 NumPy 之上,提供了更高级的功能,例如数据清理、整理、筛选和统计分析。Pandas 的核心数据结构是 SeriesDataFrame,分别用于处理一维数据和二维数据。

下面是 Pandas 的详细用法介绍:

1. 导入Pandas

在使用 Pandas 之前,首先需要导入库,通常使用别名 pd

python">import pandas as pd

2. 数据结构

a) Series:一维数据结构

Series 是一种类似于 Python 列表或字典的对象,但每个数据项都有一个索引。

python"># 创建一个简单的Series
s = pd.Series([1, 3, 5, 7, 9])
print(s)
# 输出:
# 0    1
# 1    3
# 2    5
# 3    7
# 4    9
# dtype: int64

可以为 Series 自定义索引:

python">s = pd.Series([1, 3, 5, 7, 9], index=['a', 'b', 'c', 'd', 'e'])
print(s)
# 输出:
# a    1
# b    3
# c    5
# d    7
# e    9
# dtype: int64
b) DataFrame:二维数据结构

DataFrame 是 Pandas 中最常用的数据结构,可以理解为一个二维表格,类似于数据库中的表格或 Excel 表。

python"># 从字典创建DataFrame
data = {'Name': ['Tom', 'Jerry', 'Mickey'],
        'Age': [20, 22, 21],
        'Score': [88, 92, 95]}

df = pd.DataFrame(data)
print(df)
# 输出:
#      Name  Age  Score
# 0     Tom   20     88
# 1   Jerry   22     92
# 2  Mickey   21     95

3. 读取数据

a) 读取CSV文件

Pandas 可以轻松地读取各种文件格式,比如 CSV 文件、Excel 文件、SQL 数据库等。

python"># 读取CSV文件
df = pd.read_csv('data.csv')
print(df.head())  # 查看前5行数据
b) 读取Excel文件
python">df = pd.read_excel('data.xlsx', sheet_name='Sheet1')
print(df.head())

4. 数据选择

a) 选择列

你可以通过列名来选择 DataFrame 中的某一列或多列。

python"># 选择单列
print(df['Name'])

# 选择多列
print(df[['Name', 'Score']])
b) 选择行:使用lociloc
  • loc 是通过标签进行索引。
  • iloc 是通过整数位置进行索引。
python"># 通过标签选择行
print(df.loc[0])  # 选择第1行

# 通过整数位置选择行
print(df.iloc[1])  # 选择第2行

# 选择多行多列
print(df.loc[0:2, ['Name', 'Age']])

5. 数据过滤和条件筛选

Pandas 提供了方便的方式来对数据进行条件筛选。

python"># 筛选年龄大于21的数据
filtered_df = df[df['Age'] > 21]
print(filtered_df)

# 多条件筛选
filtered_df = df[(df['Age'] > 20) & (df['Score'] > 90)]
print(filtered_df)

6. 数据清理

a) 处理缺失值

缺失值在数据分析中非常常见,Pandas 提供了多种方法来处理它们。

python"># 查看缺失值情况
print(df.isnull())

# 删除包含缺失值的行
df_cleaned = df.dropna()
print(df_cleaned)

# 用指定值填充缺失值
df_filled = df.fillna(0)
print(df_filled)
b) 删除重复值
python">df_deduped = df.drop_duplicates()
print(df_deduped)
c) 修改列名
python">df.rename(columns={'Name': 'Student Name', 'Age': 'Student Age'}, inplace=True)
print(df)

7. 数据转换

a) 数据类型转换
python"># 将'Age'列转换为浮点数
df['Age'] = df['Age'].astype(float)
print(df.dtypes)
b) 应用函数:apply()map()
python"># 对DataFrame的列应用函数
df['Score'] = df['Score'].apply(lambda x: x + 5)
print(df)

# 对Series应用函数
df['Name'] = df['Name'].map(lambda x: x.upper())
print(df)

8. 数据统计和分析

Pandas 提供了丰富的统计函数和聚合功能,方便进行快速的数据分析。

a) 描述性统计
python"># 基本统计信息
print(df.describe())
b) 分组聚合
python"># 按'Age'列分组,计算'Score'的平均值
grouped_df = df.groupby('Age')['Score'].mean()
print(grouped_df)
c) 透视表(Pivot Table)
python"># 创建透视表
pivot_table = pd.pivot_table(df, values='Score', index='Age', aggfunc='mean')
print(pivot_table)

9. 数据的合并和连接

a) 合并数据

可以使用 merge() 函数将两个 DataFrame 进行合并,类似 SQL 中的 join

python"># 左连接合并
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='left')
print(merged_df)
b) 连接数据

可以使用 concat() 函数进行数据的纵向或横向拼接。

python"># 纵向拼接
df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
df2 = pd.DataFrame({'A': [5, 6], 'B': [7, 8]})

concatenated_df = pd.concat([df1, df2], axis=0)
print(concatenated_df)

10. 数据可视化

Pandas 可以与 Matplotlib 配合使用进行简单的数据可视化。

python">import matplotlib.pyplot as plt

# 简单的折线图
df['Score'].plot()
plt.show()

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

11. 导出数据

a) 导出到CSV文件
python">df.to_csv('output.csv', index=False)
b) 导出到Excel文件
python">df.to_excel('output.xlsx', sheet_name='Sheet1', index=False)

12. 时间序列处理

Pandas 提供了非常强大的时间序列功能,可以方便地进行时间戳数据的处理。

python"># 创建时间序列
date_range = pd.date_range('2024-01-01', periods=5, freq='D')
print(date_range)

# 将时间戳作为索引
df_time = pd.DataFrame({'Value': [1, 2, 3, 4, 5]}, index=date_range)
print(df_time)

总结

Pandas 是一个强大而灵活的数据分析工具,能够处理从简单到复杂的数据操作,适合于处理表格数据、时间序列数据、统计分析等。Pandas 提供的高级数据结构和丰富的函数库使得数据分析任务变得更加高效。


http://www.niftyadmin.cn/n/5694757.html

相关文章

QD1-P4 HTML常用标签之标题和水平线

本节视频 www.bilibili.com/video/BV1n64y1U7oj?p4 ‍ 本节学习: title标签(页面标题)h标签(文章标题)hr标签(横线)body标签的属性(网页背景色,字体颜色&#xff09…

要实现无限极评论

要实现无限极评论,可以利用数据库的树状结构来存储评论数据,并使用递归算法来获取无限极评论。下面我来详细介绍实现的方法和操作流程。 1. 数据库设计 首先,需要设计一个数据库表来存储评论数据。可以定义一个名为comments的表,…

git 报错git: ‘remote-https‘ is not a git command. See ‘git --help‘.

报错内容 原因与解决方案 第一种情况:git路径错误 第一种很好解决,在环境变量中配置正确的git路径即可; 第二种情况 git缺少依赖 这个情况,网上提供了多种解决方案。但如果比较懒,可以直接把仓库地址的https改成ht…

shell脚本写代码

用简单的test语句来判断是否闰年 #! /bin/bash read -p "sd " yearif [ $((year%4)) -eq 0 -a $((year%100)) -ne 0 -o $((year%400)) -eq 0 ]thenecho "是润年"elseecho "不是闰年" fi判断一个数是否为偶数 #! /bin/bash read -p "…

全网都在找的Python生成器竟然在这里!简单几步,让你的代码更简洁、更高效!

博客主页:长风清留扬-CSDN博客系列专栏:Python基础专栏每天更新大数据相关方面的技术,分享自己的实战工作经验和学习总结,尽量帮助大家解决更多问题和学习更多新知识,欢迎评论区分享自己的看法感谢大家点赞&#x1f44…

微信小程序开发-配置文件详解

文章目录 一,小程序创建的配置文件介绍二,配置文件-全局配置-pages 配置作用:注意事项:示例: 三,配置文件-全局配置-window 配置示例: 四,配置文件-全局配置-tabbar 配置核心作用&am…

[Python] 编程入门:理解变量类型

文章目录 [toc] 整数常见操作 浮点数字符串字符串中混用引号问题字符串长度计算字符串拼接 布尔类型动态类型特性类型转换结语 收录专栏:[Python] 在编程中,变量是用于存储数据的容器,而不同的变量类型则用来存储不同种类的数据。Python 与 C…

【深度学习基础模型】反卷积神经网络(Deconvolutional Networks, DN)详细理解并附实现代码。

【深度学习基础模型】反卷积神经网络(Deconvolutional Networks, DN)详细理解并附实现代码。 【深度学习基础模型】反卷积神经网络(Deconvolutional Networks, DN)详细理解并附实现代码。 文章目录 【深度学习基础模型】反卷积神…