pandas外文文档快速入门

ops/2024/9/24 17:48:38/

pandas资源可以在github中进行查询

特点:

1、基于numpy库进行开发

2、主要处理一维、二维的数据

3、可以处理sql,execl,时间表等复杂数据结构

导言
创建一维、二维表

创建的表格其实会和二维表很像

假设我们存储一些数据

其中,{}内使用的是python中的字典,则keys(name,age,sex)会被设置为列名。

对dataframe和series进行操作

需要操作的表 +对应的列+对应的函数

则可得:

表[   列   ]+函数():

一键计算功能

describe()方法:

#注意仅对数字类型的数据执行

未指定则是对所有数字类型的数据进行计算

也可以指定需要处理的

如何读写表格数据(sql、execl)
读操作:read_XXX()方法:csv, excel, sql, json, parquet, 

例子:

基础操作:

dataframe.head(nums)#读取前nums行

dataframe.tail(nums)#读取后nums行

dtypes,各列的数据类型

写操作:dataframe.to_XXX()

选择dataframe中的列/行
选择列

选择单列

name of dataframe【列名】

titanic["Age"]

选择多列

多列我们可以通过类比python中list中嵌套字典的用法

多列则可以写作:

age_sex = titanic[["Age", "Sex"]]
选择行

对数字类型进行比较

above_35 = titanic[titanic["Age"] > 35]

同样可以使用< <= != 等进行比较

类正则表达式的使用

isin

titanic[titanic["Pclass"].isin([2, 3])]//例子中表示Pclass中在2或者3的例子

或者进行条件判断类似于上面

class_23 = titanic[(titanic["Pclass"] == 2) | (titanic["Pclass"] == 3)]
#使用|表示或
选择特定行和列
loc/iloc函数的使用:

loc(columns.case,columns.targets)

case表示筛选条件,targets表示需要被选出来的列

iloc()

通过确定我们需要选取的行列

titanic.iloc[9:25, 2:5]
选取第10到25行,3到5列的数据

注:可以通过iloc和loc进行数据改写。

plots  //此处的应用实际上是matplotlib的应用

即:快速构建图(使用了matplotlib.pyplot包)

1、pandas提供了快速建表的操作既,dataframe.plot默认为折线图。具体可以画什么图可以使用tab键进行查看

2、方法体内置subplots可以将图片分开生成

在现有表中插入新的列

格式:dataframe["#新的了列的名字"]=  (括号内是对新列的赋值)

1、可以基于另一个列进行赋值

air_quality["lopndon_mg_per_cubic"]
=air_quality["station_london"]*1.882
#基于“station_london”,对新的行进行赋值。

2、可以基于两列数据进行赋值(对两行可以进行四则运算)

air_quality["radio_paris_antwerp"]=(air_quality['station_paris']/air_quality['station_antwerp'])
air_quality.head()

3、基于rename方法对已有的列名进行重命名,

air_quality_rename=air_quality.rename
(columns={'station_paris':'i am all the range',
'station_antwerp':'i am athoic',
'station_london':'i am dark'})air_quality_rename.head()
对数据的统计、汇总操作
汇总统计数据

3种方法

#只需要得出单个类型的结果#以mean()为例,求出单列的平均数,类似的还有:max() min()等In [5]: titanic[["Age", "Fare"]].median()  #代码Out[5]:                                    #结果
Age     28.0000
Fare    14.4542
dtype: float64#将所有用的上的类型都统计出来(describe方法)In [6]: titanic[["Age", "Fare"]].describe()
Out[6]: Age        Fare
count  714.000000  891.000000
mean    29.699118   32.204208
std     14.526497   49.693429
min      0.420000    0.000000
25%     20.125000    7.910400
50%     28.000000   14.454200
75%     38.000000   31.000000
max     80.000000  512.329200#一次性给出多个需要的类型(此处可以不进行所有类型的计算,节省算力)
#使用agg函数可以写入内部
In [7]: titanic.agg(...:     {...:         "Age": ["min", "max", "median", "skew"],...:         "Fare": ["min", "max", "median", "mean"],...:     }...: )...: 
Out[7]: Age        Fare
min      0.420000    0.000000
max     80.000000  512.329200
median  28.000000   14.454200
skew     0.389108         NaN
mean          NaN   32.204208

 对数据进行分类
groupby函数:会对所选列每个项创建一个分类组别

the groupby() method is applied on the Sex column to make a group per category.

输出分类后的数量。通过count()   or    value_count()    进行输出

如何重塑表格的布局
排序sort()方法

dataframe.sort_value(by=),   若为多个进行排序则需要用[]列表框住

从长到宽的格式

此步骤可以使我们更直观的观看某数据的详细

使用pivot()函数根据location为分类基础,value作为填入数值进行操作

如何整合多个表格
concat()函数

连接多个表的方法

在表内写入需要连接的表,可以在行列中进行选择合并,默认是axis=0(行合并)

下例进行了行合并

其中1110+2068刚好等于3178

concat中可以设置key来区分我们合并的数据

没设置key的

设置了key的

连接merge()函数

此处连接和sql语法中的左右连接差不多,

In [20]: air_quality = pd.merge(air_quality, stations_coord, how="left", on="location")
#连接了air_quality和station_coord两个表,left是左连接,依据的key是两个表都有的locationIn [21]: air_quality.head()
Out[21]: date.utc  ... coordinates.longitude
0  2019-05-07 01:00:00+00:00  ...              -0.13193
1  2019-05-07 01:00:00+00:00  ...               2.39390
2  2019-05-07 01:00:00+00:00  ...               2.39390
3  2019-05-07 01:00:00+00:00  ...               4.43182
4  2019-05-07 01:00:00+00:00  ...               4.43182[5 rows x 6 columns]

若左右两表的key不同则可以写成

In [24]: air_quality = pd.merge(air_quality, air_quality_parameters,....:                        how='left', left_on='parameter', right_on='id')....: In [25]: air_quality.head()
Out[25]: date.utc  ...   name
0  2019-05-07 01:00:00+00:00  ...    NO2
1  2019-05-07 01:00:00+00:00  ...    NO2
2  2019-05-07 01:00:00+00:00  ...    NO2
3  2019-05-07 01:00:00+00:00  ...  PM2.5
4  2019-05-07 01:00:00+00:00  ...    NO2[5 rows x 9 columns]
操作时间序列数据
第一步:转变时间从string类型变为datetime类型:使用to_datetime()方法。
第二部进行操作:

操作部分方法

In [10]: air_quality["datetime"].max() - air_quality["datetime"].min()
Out[10]: Timedelta('44 days 23:00:00')

或者使用df函数。df函数可以具体指年月日等

In [11]: air_quality["month"] = air_quality["datetime"].dt.monthIn [12]: air_quality.head()
Out[12]: city country                  datetime  ... value   unit  month
0  Paris      FR 2019-06-21 00:00:00+00:00  ...  20.0  µg/m³      6
1  Paris      FR 2019-06-20 23:00:00+00:00  ...  21.8  µg/m³      6
2  Paris      FR 2019-06-20 22:00:00+00:00  ...  26.5  µg/m³      6
3  Paris      FR 2019-06-20 21:00:00+00:00  ...  24.9  µg/m³      6
4  Paris      FR 2019-06-20 20:00:00+00:00  ...  21.4  µg/m³      6[5 rows x 8 columns]
与pivot结合的妙用

在此步中,我们将datetime设置为索引(通过时间可以得出一些关联的数据)

注:此处的datetime数据类型为datetime类型

使用dateframe.index.(查找的数据(年月日))

如:dateframe.index.year,用于查找年的

也可以通过dateframe["始值":"终值"]

查询这段时间的数据

改变时间频率resample()

在使用时,我们可以根据我们的需要将数据转换为自己需求的频率,如:你搜集的是按照小时计算的,我可以将他转换为按天计算等……


http://www.ppmy.cn/ops/115386.html

相关文章

在idea里运行swing程序正常,但是在外部运行jar包却报错,可能是jdk版本问题

在idea里运行swing程序异常&#xff0c;报Caused by: java.awt.HeadlessException错误 System.setProperty("java.awt.headless","false");加上这句话

【sql】MySQL中去重处理的方法

在MySQL中&#xff0c;去重通常指的是从查询结果中删除重复的行。这可以通过多种方式实现&#xff0c;具体取决于你的需求。以下是一些常见的去重方法&#xff1a; 1. DISTINCT 关键字&#xff1a; 使用 DISTINCT 关键字可以返回唯一不同的值。 SELECT DISTINCT column_name…

VSCode集成Python环境搭建配置详细步骤

1. 安装VSCode 在开始我们的Python编程之旅前,首先需要准备好我们的开发工具——Visual Studio Code,简称VSCode。VSCode是一款由微软开发的轻量级但功能强大的源代码编辑器,支持多种编程语言,并且拥有丰富的扩展生态系统。接下来,我们将一步步教你如何下载、安装以及汉化…

《JKTECH柔性振动盘:原理与多行业应用》东莞市江坤自动化科技有限公司

一、柔性振动盘的原理 柔性振动盘是一种新型的自动化上料设备&#xff0c;它采用先进的音圈电机技术和柔性振动技术&#xff0c;实现了对各种不规则形状、微小尺寸、易损伤零部件的高效上料和分拣。 其工作原理主要包括以下几个方面&#xff1a; 1. 音圈电机驱动 柔性振动盘内部…

Vue3:自定义customRef

目录 一.性质 1.自定义性 2.工厂函数参数 3.track 和 trigger 函数 二.作用 1.防抖/节流 2.异步更新 3.条件性更新 4.精细控制依赖追踪 5.优化性能 三.使用 1.ts组件 2.vue.组件 四.代码 1.ts代码 2.vue代码 五.效果 在 Vue 3 中&#xff0c;customRef 是一个…

Scrapy爬虫框架 Pipeline 数据传输管道

在网络数据采集领域&#xff0c;Scrapy 是一个非常强大的框架&#xff0c;而 Pipeline 是其中不可或缺的一部分。它允许我们在数据处理的最后阶段对抓取的数据进行进一步的处理&#xff0c;如清洗、存储等操作。 本教程将详细介绍如何在 Scrapy 中使用 Pipeline&#xff0c;帮…

【云原生监控】Prometheus之Alertmanager报警

Prometheus之Alertmanager报警 文章目录 Prometheus之Alertmanager报警概述资源列表基础环境一、部署Prometheus服务1.1、解压1.2、配置systemctl启动1.3、监控端口 二、部署Node-Exporter2.1、解压2.2、配置systemctl启动2.3、监听端口 三、配置Prometheus收集Exporter采集的数…

【MySQL】使用C语言连接数据库

看到标题&#xff0c;可能会疑惑&#xff0c;我们学习的不是C吗&#xff0c;为什么使用C语言去连接数据库呢??实际上&#xff0c;这两种语言都可以连接数据库&#xff0c;但是C语言提供的API没有进行封装&#xff0c;更有利于我们学习数据库连接。面向API编程&#xff0c;哈哈…