【Python数据处理】-Pandas笔记

在这里插入图片描述

Python数据处理-Pandas笔记

📝 基本概念

Pandas是一个强大的Python数据处理库,它提供了高效的数据结构和数据分析工具,使数据处理变得简单而快速。本篇笔记将介绍Pandas中最常用的数据结构——Series和DataFrame,以及数据处理的各种操作和技巧。

📝 Series

(一)创建Series

Series是Pandas中的一维数组,类似于带有标签的NumPy数组。创建Series可以通过多种方式进行,以下是几种常用的方法:

✨ 使用列表创建Series

import pandas as pddata = [10, 20, 30, 40, 50]
s = pd.Series(data)
print(s)

输出:

0    10
1    20
2    30
3    40
4    50
dtype: int64

✨ 使用NumPy数组创建Series

import pandas as pd
import numpy as npdata = np.array([10, 20, 30, 40, 50])
s = pd.Series(data)
print(s)

输出:

0    10
1    20
2    30
3    40
4    50
dtype: int32

✨ 使用字典创建Series

import pandas as pddata = {'a': 10, 'b': 20, 'c': 30, 'd': 40, 'e': 50}
s = pd.Series(data)
print(s)

输出:

a    10
b    20
c    30
d    40
e    50
dtype: int64

(二)Series的简单操作

Series对象提供了许多方便的方法和属性来操作数据。以下是一些常用的操作:

🕛️访问数据

通过索引访问数据
import pandas as pddata = [10, 20, 30, 40, 50]
s1 = pd.Series(data)
print(s1)
# 通过索引访问数据
print(s1[0])  # 输出 10
print(s1[2])  # 输出 30

运行结果:
在这里插入图片描述

通过标签访问数据
import pandas as pd
data = [10, 20, 30, 40, 50]
s2 = pd.Series(data,index = ['a','b','c','d','e'])
print(s2)# 通过索引访问数据
print(s2['a'])  # 输出 10
print(s2['c'])  # 输出 30

运行结果:
在这里插入图片描述

🕛️ 切片操作

import pandas as pddata = [10, 20, 30, 40, 50]
s = pd.Series(data)# 切片操作
print(s[1:4])  # 输出 [20, 30, 40]

运行结果
在这里插入图片描述

import pandas as pddata = [10, 20, 30, 40, 50]
s = pd.Series(data,index = ['a','b','c','d','e'])# 修改# 切片操作
print(s['b':'d'])  # 输出 [20, 30, 40]

运行结果
在这里插入图片描述

🕛️ 矢量化操作

import pandas as pddata = [10, 20, 30, 40, 50]
s = pd.Series(data)# 矢量化操作
print(s * 2)

输出:

0     20
1     40
2     60
3     80
4    100
dtype: int64

📝DataFrame

🏘️ 创建方式

DataFrame是Pandas中的二维数据结构,可以看作是由多个Series组成的表格。创建DataFrame的方法有很多种,下面介绍几种常见的方式:

✨ 使用列表创建DataFrame

import pandas as pddata = [['Alice', 25], ['Bob', 30], ['Charlie', 35]]
df = pd.DataFrame(data, columns=['Name', 'Age'])
print(df)

输出:

      Name  Age
0    Alice   25
1      Bob   30
2  Charlie   35

✨使用字典创建DataFrame

import pandas as pddata = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data)
print(df)

输出:

      Name  Age
0    Alice   25
1      Bob   30
2  Charlie   35

✨使用NumPy数组创建DataFrame

import pandas as pd
import numpy as npdata = np.array([['Alice', 25], ['Bob', 30], ['Charlie', 35]])
df = pd.DataFrame(data, columns=['Name', 'Age'])
print(df)

输出:

      Name Age
0    Alice  25
1      Bob  30
2  Charlie  35

☑️ 数据选取

数据选取是对DataFrame中的数据进行访问和操作的关键步骤。下面介绍一些常用的数据选取方法。

🛠️ [[]]

import pandas as pddata = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data)# 选取多列数据
print(df[['Name', 'Age']])

输出:

      Name  Age
0    Alice   25
1      Bob   30
2  Charlie   35

🛠️ copy()

import pandas as pddata = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data)# 复制DataFrame
df_copy = df.copy()

🛠️ 列操作

import pandas as pddata = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data)# 添加新列
df['Gender'] = ['Female', 'Male', 'Male']# 删除列
df = df.drop('Gender', axis=1)

🛠️ 行操作

import pandas as pddata = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data)# 选取行数据
print(df.loc[0])  # 输出第一行数据
print(df.loc[1:2])  # 输出第二行到第三行的数据

🛠️ 行-列

import pandas as pddata = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data)# 选取指定行列的数据
print(df.loc[0, 'Name'])  # 输出第一行的Name列数据
print(df.loc[1:2, 'Name'])  # 输出第二行到第三行的Name列数据

🛠️ 数据筛选

import pandas as pddata = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data)# 根据条件筛选数据
filtered_df = df[df['Age'] > 30]
print(filtered_df)

🔍 加载数据

在实际的数据处理中,我们常常需要从外部文件中加载数据到DataFrame中进行分析和处理。Pandas提供了多种方法来加载不同格式的数据,下面介绍常用的几种方式。

📉 Txt

import pandas as pd# 从txt文件加载数据
df = pd.read_csv('data.txt', sep='\t')
print(df)

📉 Csv

import pandas as pd# 从csv文件加载数据
df = pd.read_csv('data.csv')
print(df)

📉 Excel

import pandas as pd# 从Excel文件加载数据
df = pd.read_excel('data.xlsx')
print(df)

👨‍💻 排序与合并

数据排序和合并是数据处理中常用的操作之一。下面介绍几种常见的排序和合并方法。

✨ Series排序

import pandas as pddata = [10, 5, 8, 3, 12]
s = pd.Series(data)# Series排序
sorted_s = s.sort_values()
print(sorted_s)

✨ DataFrame排序

import pandas as pddata = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data)# DataFrame按某一列排序
sorted_df = df.sort_values('Age')
print(sorted_df)

✨ Rank

import pandas as pddata = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 30]}
df = pd.DataFrame(data)# 计算DataFrame的排名
ranked_df = df.rank()
print(ranked_df)

✨ merge(按列匹配合并)

import pandas as pddata1 = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
data2 = {'Name': ['Alice', 'David', 'Charlie'], 'Salary': [5000, 6000, 7000]}
df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)# 按列匹配合并两个DataFrame
merged_df = pd.merge(df1, df2, on='Name')
print(merged_df)

✨ concat(数据的拼接)

import pandas as pddata1 = {'Name': ['Alice', 'Bob'], 'Age': [25, 30]}
data2 = {'Name': ['Charlie', 'David'], 'Age': [35, 40]}
df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)# 拼接两个DataFrame
concatenated_df = pd.concat([df1, df2])
print(concatenated_df)

📊 数据汇总

在数据处理过程中,我们经常需要对数据进行汇总和统计。下面介绍几种常用的数据汇总方法。

🚀 特殊值(info, describe)

import pandas as pddata = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data)# 查看DataFrame的基本信息
print(df.info())# 查看DataFrame的统计信息
print(df.describe())

🚀 分组统计

import pandas as pddata = {'Name': ['Alice', 'Bob', 'Charlie', 'Alice', 'Bob', 'Charlie'],'Age': [25, 30, 35, 40, 45, 50],'Salary': [5000, 6000, 7000, 8000, 9000, 10000]}
df = pd.DataFrame(data)# 按Name列进行分组统计
grouped_df = df.groupby('Name').mean()
print(grouped_df)

⏰ 时间序列

Pandas提供了强大的时间序列处理功能,方便对时间相关的数据进行分析和处理。下面介绍一些时间序列的常用操作。

🕛️ 初始化时间序列

import pandas as pd# 初始化时间序列
dates = pd.date_range(start='2021-01-01', periods=10, freq='D')
print(dates)

🕛️ 时间索引

import pandas as pd# 创建带有时间索引的DataFrame
dates = pd.date_range(start='2021-01-01', periods=10, freq='D')
data = {'Value': [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]}
df = pd.DataFrame(data, index=dates)
print(df)

🕛️ 重采样

import pandas as pd# 创建带有时间索引的DataFrame
dates = pd.date_range(start='2021-01-01', periods=10, freq='D')
data = {'Value': [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]}
df = pd.DataFrame(data, index=dates)# 对时间序列进行重采样
resampled_df = df.resample('W').sum()
print(resampled_df)

📚 参考资料

  • Pandas官方文档
  • Pandas User Guide

⭐️希望本篇文章对你有所帮助。

⭐️如果你有任何问题或疑惑,请随时向提问。

⭐️感谢阅读!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/8343.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用SQL语句创建存储过程

前言: 本篇文章是记录学校学习SQL server中知识,可用于复习资料. 目录 前言:一、存储过程的创建1、创建简单存储过程2、创建带参数的存储过程3、创建带输出参数的存储过程 二 、使用T一SQL语句管理和维护存储过程2.1 使用sp_helptext查看存储过程student_sc的定义脚本2.2 使用…

大禹智库:下一代向量数据库————具备在线化,协作化,可视化,自动化和安全互信的向量数据库

目录 一、在线化 二、协作化 三、可视化 四、自动化 五、安全互信 结论: 行业分析报告:下一代向量数据库的特征 摘要: 向量数据库是一种用于存储和处理向量数据的数据库系统。随着人工智能和大数据技术的快速发展,向量数据…

匹马赛跑,1个赛道,每次5匹进行比赛,无法对每次比赛计时,但知道每次比赛结果的先后顺序,最少赛多少次可以找出前三名?

1.实现 答:至少需要比7次。 25匹马随机分成5组,每组比赛一次也即总共比5次先看一下每组马的快慢情况。 我们一开始并不知道这25匹马中谁快谁慢,所以需要筛选出那些跑的较快的马出来去竞争前三名,只能将25匹马随机进行分组比赛&…

二叉树 — 给定二叉树中某个节点,返回该节点的后继节点

后继节点定义: 二叉树以中序的方式进行遍历打印,节点X的下一个节点,就是X的后继节点。 假设二叉树如下图所示:则中序遍历的后打印出来的就是 4 -> 2 -> 5 -> 1 -> 6 -> 3 -> 7。如果X 3,则X的后继节…

直接在Notepad++中运行GO语言-(通过NppExec插件)

前提条件: 1.建议阅读文章【直接在Notepad中运行GO语言】: 直接在Notepad中运行GO语言_go语言 notepad_西晋的no1的博客-CSDN博客 2.建议阅读文章【notepad 中安装NppExec插件】: notepad 中安装NppExec插件_西晋的no1的博客-CSDN博客 以下…

EasyCVR如何在不修改分辨率的情况下进行H.265自动转码H.264?

EasyCVR视频融合平台基于云边端一体化架构,可支持多协议、多类型设备接入,在视频能力上,平台可实现视频直播、录像、回放、检索、云存储、告警上报、语音对讲、电子地图、集群、H.265转码、智能分析以及平台级联等。 我们在此前的文章中介绍过…

微服务框架

流量入口Nginx 在上图中可以看到,Nginx作为整个架构的流量入口,可以理解为一个外部的网关,它承担着请求的路由转发、负载均衡、动静分离等功能。作为一个核心入口点,Nginx肯定要采用多节点部署,同时通过keepalived来实…

Spring 是什么框架?

对于一门技术,我们需要从为什么要学、学什么以及怎么学这三个方向入手来学习。那在说Spring这三点之前,我们先看Spring之前要学什么。 Java基础、Java语法进阶、MySQL基础操作、MySQL数据库设计和多表操作、JDBC、Maven基础、MyBatis、HMLCSS、JavaScrip…

ESP8266 RTOS SDK开发 windows开发

https://blog.csdn.net/qq_36347513/article/details/105066905 文件下载路径 https://docs.espressif.com/projects/esp8266-rtos-sdk/en/latest/get-started/windows-setup.html 下载编译环境MSYS2 下载完成后解压到根目录 双击mingw32.exe打开,ls看一下是在什么…

图书推荐管理系统Python,基于Django和协同过滤算法等实现

一、介绍 图书推荐系统 / 图书管理系统,以Python作为开发语言,基于Django实现,使用协同过滤算法实现对登录用户的图书推荐。 二、效果展示 三、演示视频 视频代码:https://www.yuque.com/ziwu/yygu3z/gq555ph49m9fvrze 四、Dj…

89C52RC普中单片机

1.静态数码管显示 数组函数 #include<regx52.h> void Delay(unsigned int xms);//带参延时函数ms /*静态数码管 P0&#xff1a;表示数码管的abcdefg dp P2.234表示位选 P21110 0011是第0号数码管 */ unsigned char NixieTable[]{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x0…

安卓热修系列-插件资源冲突解决方案

作者&#xff1a;37手游移动客户端团队 背景 在做插件化过程中&#xff0c;宿主需要用到插件的资源&#xff0c;涉及到加载插件的资源&#xff1b; 因为插件是以apk的方式存在的&#xff0c;所以插件的ID和宿主的ID可能导致重复&#xff1b; 为了解决这个问题&#xff0c;需…