码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • pandas DataFrame 数据筛选(2)


    导入numpy库,创建DataFrame 数据来做演示。

    import numpy as np
    data = pd.DataFrame(np.arange(16).reshape(4, 4), index=list('abcd'), columns=list('ABCD'))
    print(data)
    
    • 1
    • 2
    • 3

    输出 一个4行,4列的示例数据,行索引为index列表,列索为 columns 。

        A B C D
    
    a  0  1  2  3
    
    b  4  5  6  7
    
    c  8  9  10  11
    
    d  12  13  14  15
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    1. 依据行索引名称取某一行的值 , 使用 lco[行索引名称]

    print(data.loc['b']) # 第2行数据, 每列都包含
    
    • 1

    2. 依据索引号取行数据, ilco[行索引号]

    print(data.iloc[1]) # 也是第2行数据
    
    • 1

    都是输出:

    A    4
    B    5
    C    6
    D    7
    
    Name: b, dtype: int32
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    3. 利用loc、iloc提取列数据

    print(data.loc[:, ['A']]) # 所有行, A 列
    
    • 1

    行索引 前后都不填写, :(一个冒号),取所有行数据。后面所以只有列索引A, 所以提取A列数据

    输出:

       A
    a  0
    b  4
    c  8
    d  12
    
    • 1
    • 2
    • 3
    • 4
    • 5

    **4. 提取取多列数据
    **

    print(data.loc[:, ['A', 'B']])  # 所有行, A ,B 列
    
    • 1

    **输出
    **

       A  B
    
    a  0  1
    
    b  4  5
    
    c  8  9
    
    d  12  13
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    **也可以使用索引号的值,取多列数据:
    **

    print(data.iloc[:, [0, 3]])
    
    • 1

    所有行数据,取第1列和第4列数据。

    输出

       A  D
    a  0  3
    b  4  7
    c  8  11
    d  12  15
    
    • 1
    • 2
    • 3
    • 4
    • 5

    5. 提取指定区域的数据

    print(data.loc[['a', 'c'], ['A', 'B']])
    
    • 1

    在列表中指定行,列。如a ,c 行,A,B列数据。

    输出:

      A  B
    a  0  1
    c  8  9
    
    • 1
    • 2
    • 3

    也可以按照索引号值取某些行,某些列的值,

    print(data.iloc[[0, 1], [0, 2]]) # 第1, 2行 ,第1列与第3列数据
    
    • 1

    输出:

      A  C
    a  0  2
    b  4  6
    
    • 1
    • 2
    • 3

    6. 提取所有数据

    print(data.loc[:])
    
    • 1

    或者

    print(data.iloc[:])
    
    • 1

    7. 根据条件取数据行

    print(data.loc[data['A'] == 0]) # 筛选A列中数字为0 所在行的数据
    
    • 1

    A 列包含数据0 的行

    输出

        A  B  C  D
    a  0  1  2  3
    
    • 1
    • 2

    同理

    print(data.loc[data['B'] == 5]) # 筛选B列中数字为5 所在行的数据
    
    • 1

    A包含数据5的行

       A  B  C  D
    b  4  5  6  7
    
    • 1
    • 2

    8.多条件筛选

    print(data.loc[(data['A'] == 0) & (data['C'] == 2)])
    
    • 1

    A列包含0 且 C列包含2 的数据行

    输出:

       A  B  C  D
    a  0  1  2  3
    
    • 1
    • 2
  • 相关阅读:
    【讲解下常见的Web前端框架】
    iPortal如何灵活设置用户名及密码的安全规则
    Go语言:基础练习–查找 substring 的函数
    Spark Streaming系列-5、应用案例: 百度搜索风云榜
    #【QT 整体窗口拖动大小,内部控件无法跟随改变的原因>>>>>解决:布局相关,布局设置】
    MATLB|基于复杂网络的配电系统微电网优化配置
    【精品】k8s配置存储-Secret、ConfigMap
    Ubuntu22.04 安装配置VNC Server
    《Vue入门到精通系列之五》--- vue-router详解
    Cookie与Session详解
  • 原文地址:https://blog.csdn.net/flysh05/article/details/126185985
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号