美文网首页
3.2 Pandas 选择数据

3.2 Pandas 选择数据

作者: 吴国友 | 来源:发表于2019-02-24 08:18 被阅读0次

学习资料:

我们建立了一个 6X4 的矩阵数据。

dates = pd.date_range('20130101', periods=6)
df = pd.DataFrame(np.arange(24).reshape((6,4)),index=dates, columns=['A','B','C','D'])

"""
             A   B   C   D
2013-01-01   0   1   2   3
2013-01-02   4   5   6   7
2013-01-03   8   9  10  11
2013-01-04  12  13  14  15
2013-01-05  16  17  18  19
2013-01-06  20  21  22  23
"""

简单的筛选

如果我们想选取DataFrame中的数据,下面描述了两种途径, 他们都能达到同一个目的:

print(df['A'])
print(df.A)

"""
2013-01-01     0
2013-01-02     4
2013-01-03     8
2013-01-04    12
2013-01-05    16
2013-01-06    20
Freq: D, Name: A, dtype: int64
"""

让选择跨越多行或多列:

print(df[0:3])
 
"""
            A  B   C   D
2013-01-01  0  1   2   3
2013-01-02  4  5   6   7
2013-01-03  8  9  10  11
"""

print(df['20130102':'20130104'])

"""
A   B   C   D
2013-01-02   4   5   6   7
2013-01-03   8   9  10  11
2013-01-04  12  13  14  15
"""

如果df[3:3]将会是一个空对象。后者选择2013010220130104标签之间的数据,并且包括这两个标签。

根据标签 loc

同样我们可以使用标签来选择数据 loc, 本例子主要通过标签名字选择某一行数据, 或者通过选择某行或者所有行(:代表所有行)然后选其中某一列或几列数据。:

print(df.loc['20130102'])
"""
A    4
B    5
C    6
D    7
Name: 2013-01-02 00:00:00, dtype: int64
"""

print(df.loc[:,['A','B']]) 
"""
             A   B
2013-01-01   0   1
2013-01-02   4   5
2013-01-03   8   9
2013-01-04  12  13
2013-01-05  16  17
2013-01-06  20  21
"""

print(df.loc['20130102',['A','B']])
"""
A    4
B    5
Name: 2013-01-02 00:00:00, dtype: int64
"""

根据序列 iloc

另外我们可以采用位置进行选择 iloc, 在这里我们可以通过位置选择在不同情况下所需要的数据例如选某一个,连续选或者跨行选等操作。

print(df.iloc[3,1])
# 13

print(df.iloc[3:5,1:3])
"""
             B   C
2013-01-04  13  14
2013-01-05  17  18
"""

print(df.iloc[[1,3,5],1:3])
"""
             B   C
2013-01-02   5   6
2013-01-04  13  14
2013-01-06  21  22

"""

在这里我们可以通过位置选择在不同情况下所需要的数据, 例如选某一个,连续选或者跨行选等操作。

根据混合的这两种 ix

当然我们可以采用混合选择 ix, 其中选择’A’和’C’的两列,并选择前三行的数据。

print(df.ix[:3,['A','C']])
"""
            A   C
2013-01-01  0   2
2013-01-02  4   6
2013-01-03  8  10
"""

通过判断的筛选

最后我们可以采用判断指令 (Boolean indexing) 进行选择. 我们可以约束某项条件然后选择出当前所有数据.

print(df[df.A>8])
"""
             A   B   C   D
2013-01-04  12  13  14  15
2013-01-05  16  17  18  19
2013-01-06  20  21  22  23
"""

下节我们将会讲到Pandas中如何设置值。

相关文章

  • 《莫烦Python》笔记 -- pandas部分

    3.1 pandas基本介绍 3.2 pandas选择数据 3.3 pandas设置值 3.4 pandas处理缺...

  • 3.2 Pandas 选择数据

    学习资料: 相关代码 我们建立了一个 6X4 的矩阵数据。 简单的筛选 如果我们想选取DataFrame中的数据,...

  • 文科生学Python系列9: Pandas入门

    第五课内容:Pandas入门 pandas DataFrame(数据框)pandas Series数据的选择案例:...

  • Pandas学习笔记

    pandas笔记 插入pandas 创建序列 创建dataframe 选择数据 设置值 处理丢失数据 导入导出数据...

  • 数据预处理实战(1)

    目录 1. 前言2. 数据字典3. 优雅使用pandas3.1 读取数据3.2 索引与选取3.3 布尔索引3.4 ...

  • pandas 中链式索引 选择数据1

    pandas 中链式索引 选择数据1 链式索引选择数据,示例1 +链式索引选择数据,示例2 链式索引选择数据,示例...

  • ApacheCN Pandas 教程集

    Pandas 秘籍零、前言一、Pandas 基础二、数据帧基本操作三、开始数据分析四、选择数据子集五、布尔索引六、...

  • pandas选择数据

    在此附上视频链接,想具体了解的朋友可以看看。 一、引入第三方库 首先我们引入numpy与pandas第三方库,如果...

  • Pandas 选择数据

    简单选择 选择某列 切片选择 select by label:loc 按标签来选择 select by posit...

  • Pandas中选择数据的子集 第二部分

    在Pandas中选择数据的子集 第二部分第二部分:布尔索引这是关于如何从pandas数据框架或系列中选择数据子集的...

网友评论

      本文标题:3.2 Pandas 选择数据

      本文链接:https://www.haomeiwen.com/subject/aikvyqtx.html