首页 > 编程语言 >Python Pandas教程:DataFrames入门

Python Pandas教程:DataFrames入门

时间:2023-06-15 13:32:49浏览次数:53  
标签:删除 Python frame DataFrames DataFrame df DF data Pandas


Pandas是一个开源Python库,它在Python编程中提供数据分析和操作。

它是数据表示,过滤和统计编程中非常有前途的库。Pandas中最重要的部分是DataFrame,您可以在其中存储和播放数据。

在本教程中,您将了解DataFrame是什么,如何从不同的源创建它,如何将其导出到不同的输出,以及如何操作其数据。

安装熊猫

您可以使用pip在Python中安装Pandas 。在cmd中运行以下命令:

pip install pandas

此外,您可以使用conda安装Pandas,如下所示:

conda install pandas 

阅读Excel文件

您可以使用read_excel() Pandas中的方法从Excel文件中读取  。为此,您需要再导入一个名为xlrd的模块。

使用pip安装xlrd:

pip install xlrd 

Python Pandas教程:DataFrames入门_SQL

下面的示例演示了如何从Excel工作表中读取:

  1. 我们创建了一个包含以下内容的Excel工作表:
  2. Python Pandas教程:DataFrames入门_分隔符_02

  3. 导入Pandas模块: import pandas 

上面的代码片段将生成以下输出:

Python Pandas教程:DataFrames入门_分隔符_03

如果使用type关键字检查输出的类型,它将为您提供以下结果:

< 类 'pandas.core.frame.DataFrame' >

这称为DataFrame!这是我们将在本教程中处理的Pandas的基本单元。

DataFrame是一个带标签的二维结构,我们可以存储不同类型的数据。DataFrame类似于SQL表或Excel电子表格。

导入CSV文件

要从CSV文件中读取,您可以使用read_csv() Pandas 的  方法。

导入pandas模块: import pandas 

现在调用  read_csv() 方法如下:

Book1.csv具有以下内容:

Python Pandas教程:DataFrames入门_分隔符_04

该代码将生成以下DataFrame:

Python Pandas教程:DataFrames入门_分隔符_05

阅读文本文件

我们也可以使用read_csv Pandas 的  方法从文本文件中读取; 考虑以下示例:

进口 大熊猫


大熊猫。read_csv('myFile.txt')

myFile.txt如下所示:

上面代码的输出将是:

Python Pandas教程:DataFrames入门_分隔符_06

此文本文件被视为CSV文件,因为我们使用逗号分隔的元素。该文件还可以使用其他分隔符,例如分号,制表符等。

假设我们有一个制表符分隔符,文件如下所示:

Python Pandas教程:DataFrames入门_sql_07

当分隔符是制表符时,我们将得到以下输出:

Python Pandas教程:DataFrames入门_分隔符_08

由于Pandas不知道分隔符,因此它将选项卡转换为\t

要将制表符定义为分隔符,请传递分隔符参数,如下所示:

大熊猫。read_csv('myFile.txt',delimiter = '\ t')

现在输出将是:

Python Pandas教程:DataFrames入门_sql_09

现在看起来正确。

阅读SQL

您可以使用read_sql() Pandas 的  方法从SQL数据库中读取。这在以下示例中进行了演示:

import  sqlite3
 
进口 大熊猫
 
con = sqlite3。connect('mydatabase.db')
 
大熊猫。read_sql('select * from Employee',con)


在此示例中,我们连接到一个SQLite3数据库,该数据库具有名为“Employee”的表。使用read_sql()  Pandas 的  方法,然后我们将查询和连接对象传递给该  read_sql()  方法。查询将获取表中的所有数据。

我们的Employee表如下所示:

Python Pandas教程:DataFrames入门_SQL_10

运行上面的代码时,输出将如下所示:

选择列

假设我们在Employee表中有三列,如下所示:

Python Pandas教程:DataFrames入门_SQL_11

要从表中选择列,我们将传递以下查询:

从员工中选择姓名,工作

Pandas代码声明如下:

大熊猫。read_sql('select Name,Job from Employee',con)

Python Pandas教程:DataFrames入门_sql_12

我们还可以通过访问DataFrame从表中选择一列。请考虑以下示例:

x = 熊猫。read_sql('select * from Employee',con)


x [ '姓名' ]

结果如下:

Python Pandas教程:DataFrames入门_sql_13

按值选择行

首先,我们将创建一个DataFrame,我们将从中选择行。

要创建DataFrame,请考虑以下代码:

进口 大熊猫
frame_data = { '名':'詹姆斯','贾森','罗杰斯' ],'年龄':18,20,22 ],'工作':'助理','经理','职员' ] }
df = 熊猫。DataFrame(frame_data)

在这段代码中,我们使用DataFrame() Pandas 的方法创建了一个包含三列和三行的DataFrame  。结果如下:

Python Pandas教程:DataFrames入门_分隔符_14

要基于值选择行,请运行以下语句:

df。loc [ df [ 'name' ] == 'Jason' ]

df.loc[]  或者  DataFrame.loc[] 是一个布尔数组,可用于按值或标签访问行或列。在上面的代码中,将获取行,其中名称等于Jason。

输出将是:

Python Pandas教程:DataFrames入门_SQL_15

选择按索引排序

要通过索引选择行,我们可以使用slicing(:)运算符或  df.loc[] 数组。

请考虑以下代码:

>> >  frame_data = { '名':'詹姆斯','贾森','罗杰斯' ],'年龄':18,20,22 ],'工作':'助理','经理','职员' ]}
>> >  DF = 大熊猫。DataFrame(frame_data)

我们创建了一个DataFrame。现在让我们使用df.loc[]以下方法访问一行:

>>> df.loc[1] 

Python Pandas教程:DataFrames入门_SQL_16

如您所见,获取了一行。我们可以使用切片运算符执行相同的操作,如下所示:

>>> df[1:2] 

Python Pandas教程:DataFrames入门_SQL_17

更改列类型

可以使用astype()  DataFrame 的属性更改列的数据类型  。要检查列的数据类型,我们使用dtypes DataFrame 的  属性。

>>> df.dtypes

输出将是:

现在将数据类型从一个转换为另一个:

>> >  DF。name = df。名字。astype(str)

我们从DataFrame中获取了列'name',并将其数据类型从object更改为string。

将函数应用于列/行

要在列或行上应用函数,可以使用apply() DataFrame 的  方法。

请考虑以下示例:

>> >  frame_data = { 'A':[ 1,2,3 ],'B':[ 18,20,22 ],'C':[ 54,12,13 ]}
>> >  DF = 大熊猫。DataFrame(frame_data)

我们创建了一个DataFrame,并在行中添加了整数类型的值。要在值上应用函数(例如平方根),我们将导入NumPy模块以使用sqrt 它中的  函数,如下所示:

>> >  进口 numpy的 为 NP
>> >  DF。申请(NP。开方)

输出如下:

Python Pandas教程:DataFrames入门_SQL_18

要应用该  sum 功能,代码将是:

>>> df.apply(np.sum)

Python Pandas教程:DataFrames入门_sql_19

要将函数应用于特定列,可以像这样指定列:

>>>df['A'].apply(np.sqrt) 

排序值/按列排序

要对DataFrame中的值进行排序,请使用DataFrame的  sort_values() 方法。

使用整数值创建DataFrame:

>> >  frame_data = { 'A':[ 23,12,30 ],'B':[ 18,20,22 ],'C':[ 54,112,13 ]}
>> >  DF = 大熊猫。DataFrame(frame_data)

现在要对值进行排序:

>> >  DF。sort_values(by = [ 'A' ])

输出将是:

Python Pandas教程:DataFrames入门_sql_20

该  sort_values() 方法具有必要的属性“by”。在上面的代码中,值按列A排序。要按多列排序,代码将是:

>> >  DF。sort_values(by = [ 'A','B' ])

如果要按降序排序,请将升序属性设置  set_values 为False,如下所示:

>> >  DF。sort_values(by = [ 'A' ],ascending = False)

输出将是:

Python Pandas教程:DataFrames入门_sql_21

删除/删除重复项

要从DataFrame中删除重复行,请使用DataFrame的  drop_duplicates() 方法。

请考虑以下示例:

>> >  frame_data = { '名':'詹姆斯','贾森','罗杰斯','杰森' ],'年龄':18,20,22,20 ],'工作':'助理','经理','职员','经理' ]}
>> >  DF = 大熊猫。DataFrame(frame_data)

Python Pandas教程:DataFrames入门_SQL_22

在这里,我们创建了一个具有重复行的DataFrame。要检查DataFrame中是否存在任何重复行,请使用DataFrame的  duplicated() 方法。

结果将是:

Python Pandas教程:DataFrames入门_sql_23

可以看出最后一行是重复的。要删除或删除此行,请运行以下代码行:

>> >  DF。drop_duplicates()

现在的结果将是:

Python Pandas教程:DataFrames入门_SQL_24

按列删除重复项

有时,我们有数据列的值相同,我们希望删除它们。我们可以通过传递我们需要删除的列的名称来逐行删除。

例如,我们有以下DataFrame:

>> >  frame_data = { '名':'詹姆斯','贾森','罗杰斯','杰森' ],'年龄':18,20,22,21 ],'工作':'助理','经理','职员','员工' ]}
>> >  DF = 大熊猫。DataFrame(frame_data)

在这里你可以看到Jason是两次。如果要按列删除重复项,只需传递列名称,如下所示:

>> >  DF。drop_duplicates([ 'name' ])

结果如下:

Python Pandas教程:DataFrames入门_分隔符_25

删除列

要删除整个列或行,我们可以drop() 通过指定列或行的名称来使用DataFrame 的  方法。

请考虑以下示例:

>> >  DF。drop([ 'job' ],axis = 1)

在这行代码中,我们将删除名为“job”的列。这里需要axis参数。如果轴值为1,则表示我们要删除列,如果轴值为0,则表示将删除该行。在轴值中,0表示索引,1表示列。

结果将是:

Python Pandas教程:DataFrames入门_分隔符_26

删除行

我们可以使用该  drop() 方法通过传递行的索引来删除或删除行。

假设我们有以下DataFrame:

>> >  frame_data = { '名':'詹姆斯','贾森','罗杰斯' ],'年龄':18,20,22 ],'工作':'助理','经理','职员' ]}
>> >  DF = 大熊猫。DataFrame(frame_data)

要删除索引为0的行,其中名称为James,age为18且作业为Assistant,请使用以下代码:

>>> df.drop([0]) 

Python Pandas教程:DataFrames入门_分隔符_27

让我们创建一个DataFrame,索引是名称:

>> >  frame_data = { '名':'詹姆斯','贾森','罗杰斯' ],'年龄':18,20,22 ],'工作':'助理','经理','职员' ]}
>> >  DF = 大熊猫。DataFrame(frame_data,index = [ 'James','Jason','Rogers' ])

Python Pandas教程:DataFrames入门_sql_28

现在我们可以删除具有特定值的行。例如,如果我们要删除名称为Rogers的行,则代码将为:

>>> df.drop(['Rogers']) 

输出将是:

Python Pandas教程:DataFrames入门_分隔符_29

您还可以删除一系列行:

>>> df.drop(df.index[[0, 1]]) 

这将删除从索引0到1的行以及仅剩下一行,因为我们的DataFrame由3行组成:

Python Pandas教程:DataFrames入门_SQL_30

如果要从DataFrame中删除最后一行并且不知道总行数是多少,那么可以使用负索引,如下所示:

-1删除最后一行。同样-2将删除最后2行,依此类推。

Python Pandas教程:DataFrames入门_分隔符_31

总结一列

您可以使用sum() DataFrame 的  方法对列项进行求和。

假设我们有以下DataFrame:

>> >  frame_data = { 'A':[ 23,12,12 ],'B':[ 18,18,22 ],'C':[ 13,112,13 ]}
>> >  DF = 大熊猫。DataFrame(frame_data)

现在总结A列的项目,使用以下代码行:

>>> df['A'].sum() 

Python Pandas教程:DataFrames入门_sql_32

您还可以使用apply() DataFrame 的  方法并传入NumPy的sum方法来对值进行求和。

计算唯一值

要计算列中的唯一值,可以使用nunique() DataFrame 的  方法。

假设我们有如下的DataFrame:

>> >  frame_data = { 'A':[ 23,12,12 ],'B':[ 18,18,22 ],'C':[ 13,112,13 ]}
>> >  DF = 大熊猫。DataFrame(frame_data)

要计算A列中的唯一值:

>>> df['A'].nunique()

Python Pandas教程:DataFrames入门_分隔符_33

如您所见,A列只有2个唯一值23和12,另外12个是重复,这就是为什么我们在输出中有2个。

如果要计算列中的所有值,可以使用以下  count() 方法:

>>> df['A'].count() 

Python Pandas教程:DataFrames入门_分隔符_34

子集行

要选择DataFrame的子集,可以使用方括号。

例如,我们有一个包含一些整数的DataFrame。我们可以像这样选择或分配一行:

df.[start:count] 

起点将包含在子集中,但不包括停止点。例如,要从第一行开始选择3行,您将编写:

>>> df[0:3] 

输出将是:

Python Pandas教程:DataFrames入门_SQL_35

该代码表示从第一行开始,该行为0并选择3行。

同样,要选择前两行,您将编写:

>>> df[0:2] 

Python Pandas教程:DataFrames入门_sql_36

要选择或子集最后一行,请使用否定索引:

>>> df[-1:] 

Python Pandas教程:DataFrames入门_分隔符_37

写入Excel

要将DataFrame写入Excel工作表,我们可以使用该  to_excel() 方法。

要写入Excel工作表,您必须打开工作表并打开Excel工作表,我们必须导入openpyxl模块。

使用pip安装openpyxl:

pip install openpyxl 

Python Pandas教程:DataFrames入门_sql_38

请考虑以下示例:

>> >  进口 openpyxl
>> >  frame_data = { '名':'詹姆斯','贾森','罗杰斯' ],'年龄':18,20,22 ],'工作':'助理','经理','职员' ]}
>> >  DF = 大熊猫。DataFrame(frame_data)
>> >  DF。to_excel(“pandasExcel.xlsx”,“Sheet1”)

Excel文件如下所示:

Python Pandas教程:DataFrames入门_分隔符_39

写入CSV

同样,要将DataFrame写入CSV,您可以使用to_csv() 以下代码行中的  方法:

>>> df.to_csv("pandasCSV.csv")

输出文件如下所示:

Python Pandas教程:DataFrames入门_SQL_40

写入SQL

要将数据写入SQL,我们可以使用该  to_sql() 方法。

请考虑以下示例:

import  sqlite3
进口 大熊猫
con = sqlite3。connect('mydatabase.db')
frame_data = { '名':'詹姆斯','贾森','罗杰斯' ],'年龄':18,20,22 ],'工作':'助理','经理','职员' ] }
df = 熊猫。DataFrame(frame_data)
df。to_sql('users',con)

在此代码中,我们创建了与SQLite3数据库的连接。然后我们创建了一个包含三行三列的DataFrame。

最后,我们使用to_sql 了DataFrame(df)的  方法,并传递了数据将与连接对象一起存储的表的名称。

SQL数据库将如下所示:

Python Pandas教程:DataFrames入门_sql_41

写信给JSON

您可以使用to_json() DataFrame 的  方法写入JSON文件。

这在以下示例中进行了演示:

>>> df.to_json("myJson.json")

在这行代码中,JSON文件的名称作为参数传递。DataFrame将存储在JSON文件中。该文件将包含以下内容:

Python Pandas教程:DataFrames入门_分隔符_42

写入HTML文件

您可以使用to_html() DataFrame 的  方法创建包含DataFrame内容的HTML文件。

请考虑以下示例:

>>> df.to_html("myhtml.html") 

结果文件将包含以下内容:

Python Pandas教程:DataFrames入门_sql_43

在浏览器中打开HTML文件时,它将如下所示:

Python Pandas教程:DataFrames入门_分隔符_44

使用大熊猫非常容易。这就像使用Excel工作表一样!Pandas DataFrame也是一个非常灵活的库。

我希望你发现这个教程很有用。继续回来。

 

标签:删除,Python,frame,DataFrames,DataFrame,df,DF,data,Pandas
From: https://blog.51cto.com/u_16145034/6486342

相关文章

  • 批量生成,本地推理,人工智能声音克隆框架PaddleSpeech本地批量克隆实践(Python3.10)
    云端炼丹固然是极好的,但不能否认的是,成本要比本地高得多,同时考虑到深度学习的训练相对于推理来说成本也更高,这主要是因为它需要大量的数据、计算资源和时间等资源,并且对超参数的调整也要求较高,更适合在云端进行。在推理阶段,模型的权重和参数不再调整。相反,模型根据输入数据的特征......
  • [-002-]-Python3+Unittest+Uiautomation Windows桌面App UI自动化之鼠标操作
    1、单击鼠标左键Click(x:int,y:int,waitTime:float=OPERATION_WAIT_TIME)模拟鼠标在点x,y的点击。OPERATION_WAIT_TIME默认为0.5即等待时间默认为0.5秒2、单击鼠标中键MiddleClick(x:int,y:int,waitTime:float=OPERATION_WAIT_TIME)模拟鼠标在点x,y......
  • python抓取prometheus容器数据,并实现监控报警
    importjsonimportmathimportpytzimportrequestsfromdatetimeimportdatetimeclassMonitoring(object):def__init__(self):self.namespace_list=["apollo","bhpc-admin-nginx","bluehelix","broker","cer......
  • Python函数笔记随笔
    做题时碰到的一些函数,我准备着没事就拿着看看,温故而知新咯PythonListreverse()reverse()函数用于反向列表中元素。aList=[123,'xyz','zara','abc','xyz']aList.reverse()print输出结果↓List:['xyz','abc','zara','......
  • #yyds干货盘点#python关键字参数
    关键字参数kwarg=value 形式的 关键字参数 也可以用于调用函数。函数示例如下:defparrot(voltage,state='astiff',action='voom',type='NorwegianBlue'):print("--Thisparrotwouldn't",action,end='')print("ifyouput......
  • python list 从列表A删除列表B的几种方法
    问题描述:a=['a','b','c','d','e','f']b=['a','c','d']想要得到一个列表C=a-b的元素即c=['b','e','f']转换成集合删除c=list(set(a).difference......
  • django 更改了modules.py 数据库模型,但是 python3 manage.py makemigrations 提示无
    现象:明明改了modules.py文件。删了appname/migrations/下所有内容。而且也删除了django模型变更记录表django_migrations中appname项目的记录 原因:删多了: appname/migrations/下所有内容。__init__.py不能删,需要重新创建一个,否则识别不了包了  ......
  • python第一课 -python基本语法
    python关键字导入关键字,并打印出来importkeyword#查看python关键字print(keyword.kwlist)'''将python关键字每行5个打印出来'''key=keyword.kwlistj=0foriinkey:print(i,end='\t')j+=1ifj==5:j=0print('\......
  • python 项目打包成exe文件-使用pyinstaller
    1.首先安装pyinstaller2.复制一份项目到桌面3.命令行进入桌面的项目地址4.使用pyinstaller打包,几种打包方法见上图。截图方框依次为虚拟环境,项目地址,打包方式以及内容(打包的是main.py文件)打包后结果:在文件件内多处两个文件夹,打开dist文件夹就可以看到可执行程序跟着老师一起做的......
  • python GUI+爬虫——12306抢票软件(1)
    使用python的GUI和爬虫等功能自己构造一个12306的抢票软件。该课程来自网易云课堂的撩课学院,付费课程。地址:网易云课堂搜索以下内容就可找到我跟着学,不一定最后能成功。先试试,想要成功的同学请看我该系列有没有真正实现,如果我没有实现,你可以直接放弃,不用再浪费时间了。简单描述一......