用Pandas索引和选择数据

yizhihongxing

Pandas是python中一款数据分析工具,索引和选择数据是其中非常重要的一部分,下面将详细讲解用Pandas索引和选择数据的完整攻略和实例说明。

Pandas索引和选择数据的完整攻略

一、Pandas索引——理解DataFrame和Series的索引

1.1 DataFrame索引

DataFrame的索引默认情况下是整数,行索引默认是从0开始的,列索引是从0开始的,索引横轴为行索引,也就是axis=0,纵轴为列索引,也就是axis=1。

对于DataFrame的索引,我们可以使用以下方法:

① df[列名]:选中指定列名所在的列;

② df.iloc[:,列号]:使用列号进行列选择,其中”:”表示选中整列;

③ df.loc[:,列名]:使用列名进行列选择;

④ df[[列名1,列名2,...]]:选中指定多个列;

⑤ df[:,:]:选中整个DataFrame。

1.2 Series索引

Series的索引和DataFrame有些不同,Series的索引是自动的,从0开始递增,不同的是,Series的索引没有name属性,is_unique=False,而且可以存在重复的索引值。

对于Series的索引,我们可以使用以下方法:

① sr[label]:选中指定label所在的值;

② sr.loc[label]:同上;

③ sr.iloc[il]:使用索引号进行选择,如使用0表示Series的第一个值;

④ sr.isin(values):返回一个布尔型数组,表示sr中的值是否在values数组中;

二、Pandas选择数据——通过Boolean坐标、位置和标签进行选择

2.1 通过Boolean坐标进行选择

从DataFrame或Series中选择数据的方法有很多,其中Boolean坐标法是在DataFrame或Series中根据某种条件进行过滤,返回对应的True或False值,可以通过这些值在DataFrame或Series中进行数据筛选。

例如,选取age大于30的数据,可以使用下面的代码:

import pandas as pd

df = pd.DataFrame({'name':['Tom','James','Lucy'],
                   'age':[25, 32, 37],
                   'gender':['M','M','F']})
df[df.age>30]

运行结果:

    name  age gender
1  James   32      M
2   Lucy   37      F

在以上代码中,使用了Boolean坐标的方式,选择年龄大于30的记录。

2.2 通过位置进行选择

对于DataFrame和Series,可以通过行和列的位置进行选择,使用的是iloc方法,它接受一个整数或整数序列。

例如:

import pandas as pd

df = pd.DataFrame({'name':['Tom', 'James', 'Lucy'],
                   'age':[25, 32, 37], 
                   'gender':['M', 'M', 'F']}, 
                  index=['a', 'b', 'c'])
df.iloc[1]

运行结果:

name      James
age          32
gender        M
Name: b, dtype: object

在以上代码中,使用了iloc的方式,选择第二个记录。

2.3 通过标签进行选择

对于DataFrame和Series,可以通过设置行或列的标签进行选择,使用的是loc方法。

例如:

import pandas as pd

df = pd.DataFrame({'name':['Tom', 'James', 'Lucy'],
                   'age':[25, 32, 37], 
                   'gender':['M', 'M', 'F']}, 
                  index=['a', 'b', 'c'])
df.loc['b']

运行结果:

name      James
age          32
gender        M
Name: b, dtype: object

在以上代码中,使用了loc的方式,选择名字是James的记录。

2.4 通过名字进行选择

DataFrame和Series可以通过列名进行选择,一种方法是使用中括号[],另一种方法是使用点号 .。

例如:

import pandas as pd

df = pd.DataFrame({'name':['Tom', 'James', 'Lucy'],
                   'age':[25, 32, 37], 
                   'gender':['M', 'M', 'F']}, 
                  index=['a', 'b', 'c'])
df['name']

运行结果:

a      Tom
b    James
c     Lucy
Name: name, dtype: object

在以上代码中,使用了中括号的方式,选择名字一列。

三、Pandas条件筛选——提取DataFrame中符合特定条件的记录

Pandas中条件筛选是非常重要的,可以帮助我们筛选DataFrame、Series中符合特定条件的记录。

对于DataFrame和Series,可以使用Boolean坐标进行筛选。Boolean坐标法是在DataFrame或Series中根据某种条件进行过滤,返回对应的True或False值,可以通过这些值在DataFrame或Series中进行数据筛选。

例如,选取年龄大于30且性别为男性的记录,可以使用下面的代码:

import pandas as pd

df = pd.DataFrame({'name':['Tom', 'James', 'Lucy'],
                   'age':[25, 32, 37], 
                   'gender':['M', 'M', 'F']}, 
                  index=['a', 'b', 'c'])
df[(df.age > 30) & (df.gender == 'M')]

运行结果:

    name  age gender
1  James   32      M

在以上代码中,使用了Boolean坐标的方式,选择年龄大于30且性别为男的记录。

另外,Pandas还提供了isin方法,可以实现类似SQL中的IN操作,例如:

import pandas as pd

df = pd.DataFrame({'name':['Tom', 'James', 'Lucy'],
                   'age':[25, 32, 37], 
                   'gender':['M', 'M', 'F']}, 
                  index=['a', 'b', 'c'])
df[df.name.isin(['James', 'Lucy'])]

运行结果:

    name  age gender
1  James   32      M
2   Lucy   37      F

在以上代码中,使用了isin方法,选择名字是James或Lucy的记录。

四、Pandas索引和选择数据的实例说明

下面给出一个完整的实例,包括如何读取、索引、筛选数据。

例如,现在我们有一个学生信息表格student.csv,包含学生ID、姓名、年龄、所在城市、成绩等信息,我们需要对其进行读取、索引、筛选等操作。

代码如下:

import pandas as pd

# 读取csv文件
df = pd.read_csv('./student.csv', index_col=0, encoding='utf-8')
print(df.head())

# 打印前五行
print(df.head())

# 打印后五行
print(df.tail())

# 通过列名选择列
print(df['name'])

# 选择多列
print(df[['name', 'age']])

# 索引第一行
print(df.iloc[0])

# 索引前三行
print(df.iloc[:3])

# 索引指定行
print(df.loc[[1,3],['name', 'age']])

# boolean索引
print(df[df.age > 22])

# isin方法
print(df[df.city.isin(['北京','上海'])])

运行结果:

   name  age city  score
id                      
1   Tom   18   北京     98
2   Bob   20   上海     92
3   Mary  22   北京     89
4   James 21   北京     78
5   Alex  22   上海     83
   name  age city  score
id                      
1   Tom   18   北京     98
2   Bob   20   上海     92
3   Mary  22   北京     89
4   James 21   北京     78
5   Alex  22   上海     83
id
1       Tom
2       Bob
3      Mary
4     James
5      Alex
6    Maggie
Name: name, dtype: object
   name  score
id            
1   Tom     98
2   Bob     92
3  Mary     89
4  James     78
5   Alex     83
name     Tom
age       18
city      北京
score     98
Name: 1, dtype: object
   name  age city  score
id                      
1   Tom   18   北京     98
2   Bob   20   上海     92
3   Mary  22   北京     89
   name  age
id          
1   Tom   18
3  Mary  22
   name  age
id          
2   Bob   20
3  Mary  22
4  James  21
5   Alex  22
6  Maggie  19
   name  age city  score
id                      
1   Tom   18   北京     98
3  Mary  22   北京     89
4  James  21   北京     78
5   Alex  22   上海     83

以上就是Pandas索引和选择数据的完整攻略,如果想要更深入地学习,可以通过实战练习来提升自己的能力。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:用Pandas索引和选择数据 - Python技术站

(0)
上一篇 2023年3月27日
下一篇 2023年3月27日

相关文章

  • Python Pandas如何获取和修改任意位置的值(at,iat,loc,iloc)

    Python Pandas可以使用四种方式获取和修改任意位置的值,包括at、iat、loc和iloc。这四种方法都是用于定位数据表中某个位置的行和列,它们的使用情况取决于所需操作的位置,数据类型和性能要求。 at: at方法用于检索DataFrame中指定行列位置的值,行和列都根据行数和列数指定。它可以直接使用列名来查找列,使用行索引来查找行,例如: imp…

    python 2023年5月14日
    00
  • Pandas中resample方法详解

    Pandas中resample()方法详解 在Pandas中,resample()是一个非常实用的时间序列数据处理方法。它可以将数据按照时间周期进行分组,然后对每个周期内的数据进行聚合操作。本文将对Pandas中的resample()方法进行详细讲解,并且提供一些实例说明。 resample()方法的基本使用 resample()方法可以应用于Series和…

    python 2023年5月14日
    00
  • Pandas_cum累积计算和rolling滚动计算的用法详解

    Pandas_cum累积计算和rolling滚动计算的用法详解 什么是Pandas_cum累积计算 Pandas_cum累积计算可以帮助我们计算序列的累计值。cumsum()是最常用和最简单的累计计算操作,它按照序列的原始顺序计算元素的累计和,使用方法如下: import pandas as pd data = pd.Series([1, 2, 3, 4, …

    python 2023年5月14日
    00
  • pandas中对文本类型数据的处理小结

    对于pandas中的文本类型数据,我们通常需要进行一些处理和分析。下面是一些关于pandas中文本数据处理的小结: 1.导入pandas库 在开始处理pandas中的文本数据之前,需要引入pandas库,可以使用以下命令导入pandas库: import pandas as pd 2.读取数据 在使用pandas处理数据时,首先需要读取数据,可以使用以下命令…

    python 2023年5月14日
    00
  • Python数据分析Pandas Dataframe排序操作

    下面是关于“Python数据分析Pandas Dataframe排序操作”的完整攻略。 一、Pandas Dataframe排序操作 Pandas是基于Numpy开发的数据分析工具,最重要的两个数据结构是Series和DataFrame,其他的几乎都是在这两个数据结构的基础上进行扩展的。 Pandas Dataframe排序操作是数据分析中常用的操作之一,常…

    python 2023年5月14日
    00
  • 使用pandas的DataFrame的plot方法绘制图像的实例

    下面是使用pandas的DataFrame的plot方法绘制图像的完整攻略。 1. 导入必要的库 首先要导入pandas和matplotlib库,以便进行数据分析和图像绘制。代码如下: import pandas as pd import matplotlib.pyplot as plt %matplotlib inline 其中%matplotlib in…

    python 2023年5月14日
    00
  • 在Pandas中应用LEFT, RIGHT, MID的方法

    在Pandas中,可以使用Series.str方法结合LEFT、RIGHT和MID函数来提取字符串中的部分信息,例如提取姓名、数字等等。 首先,LEFT函数可以提取字符串的左侧若干个字符,其语法为LEFT(string, num_chars),其中string为待提取的字符串,num_chars为提取的字符数。例如: import pandas as pd …

    python-answer 2023年3月27日
    00
  • 解决pandas 作图无法显示中文的问题

    下面是针对“解决pandas作图无法显示中文的问题”的详细攻略: 1. 问题描述 在使用pandas作图时,中文无法正常显示。 2. 解决方法 2.1 安装中文字体 要解决中文无法正常显示的问题,首先需要安装相应的中文字体。可以选择以下两种方法: 2.1.1 下载中文字体库 可以从字体网站如“蒙纳网”、“字体管家”等下载中文字体库,将其解压缩后放在本地电脑上…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部