这个问题可以分两个思路来讲

虽然本质上都是一样的。

在之前的一篇文章中,我提到了用dfmask矩阵这个概念(在官网上有的hhh) 点击这里可以看~。
这里我也会用到类似的东西,但是理解会更透彻一点。

先来个简单的点hhh

import pandas as pd
if __name__ == '__main__':df = pd.DataFrame({'AAA': range(5), 'BBB': list('abcde'), 'CCC': ['a', 12, 1.2, ['alist'], (1, 2)]})print(df)print(df[df.AAA >= 2])

输出的结果是:

   AAA BBB      CCC
0    0   a        a
1    1   b       12
2    2   c      1.2
3    3   d  [alist]
4    4   e   (1, 2)AAA BBB      CCC
2    2   c      1.2
3    3   d  [alist]
4    4   e   (1, 2)

这个意思还是很简单的。关键还是对这个要有个比较深的理解。
* 比如,这个东西是得到的是copy对象,还是原数据的索引?

import pandas as pdif __name__ == '__main__':df = pd.DataFrame({'AAA': range(5), 'BBB': list('abcde'), 'CCC': ['a', 12, 1.2, ['alist'], (1, 2)]})df[df.AAA >= 2].iloc[0, 1] = 'qwe'print(df)

通过上面的代码,输出的之后,是会报错的~
虽然也只是警告信息!
输出的信息如下:

   AAA BBB      CCC
0    0   a        a
1    1   b       12
2    2   c      1.2
3    3   d  [alist]
4    4   e   (1, 2)
C:\Users\Administrator\AppData\Local\Programs\Python\Python35-32\lib\site-packages\pandas\core\indexing.py:537: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value insteadSee the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copyself.obj[item] = s

但是将代码改成下面的代码就不会出现问题了

import pandas as pdif __name__ == '__main__':df = pd.DataFrame({'AAA': range(5), 'BBB': list('abcde'), 'CCC': ['a', 12, 1.2, ['alist'], (1, 2)]})df[df.AAA >= 2].copy().iloc[0, 1] = 'qwe'print(df)

根据分析,其实不难推测出。在这里,其实一开始是使用的引用的版本,但是在发生赋值的情况下,就先转成了copy的版本,然后,发出警告!
所以,之前虽然表面上说的是这个变成copy,其实还是一个引用对象来的~。

再来研究

  • 这里的df.AAA >= 2究竟是什么?

我们来试一下~(其实早就知道结果了…

import pandas as pdif __name__ == '__main__':df = pd.DataFrame({'AAA': range(5), 'BBB': list('abcde'), 'CCC': ['a', 12, 1.2, ['alist'], (1, 2)]})print(df.AAA >= 2)

输出的结果是:

0    False
1    False
2     True
3     True
4     True
Name: AAA, dtype: bool
  • 也就是通过个series对象,来进行列筛选!
  • 不同于.where,这里处理的对象是True的~

最后,老套路,宣传一波自己的公众号!(求关注哇!)
本人中大一肥宅,欢迎大家关注,请扫下面的二维码(〃’▽’〃)


如果觉得有帮助的话,可以扫码,赞赏鼓励一下!谢谢!


Dataframe花样切片~(Python)相关推荐

  1. Go的数组切片 Python的列表

    Go的数组切片 & Python的列表 Go语言既具有C语言(静态语言)的特点,也具有Python语言(动态语言)的特点.比如,Go的数组切片与Python的列表操作十分类似.甚至有人认为Go ...

  2. python dataframe切片_python-如何避免“试图在DataFrame的切片副本上设置值”?

    我有一个数据框df_original: a b 0 10 5 1 12 6 2 14 1 现在,我想制作一个包含所有行的新数据框,其中c> 5,然后在此新数据帧上设置新的列值: df = df_ ...

  3. python二维列表切片,python – 切片多维列表

    我有一个可变长度多维,如下所示: listD = [[[[53, 54], [129, 130]]], [[[51, 51], [132, 132]]], [[[39, 39], [144, 144] ...

  4. python dataframe groupby_【Python数据分析基础】入坑必备的数据预处理操作

    本文解决的是2类目标业务: 有数据不知道怎么做数据分析操作的. 自己有思路不知道怎么落地实现的. Python数据分析基础必用品 office软件(推荐2016版) Python开发环境(推荐Anac ...

  5. [笔记]ndarray切片(python)

    ndarray的切片有意思,对matlab的模仿很像. from numpy import * a = array([[1, 3, 2, 3, 2],[3, 3, 1, 2, 2]]) print(a ...

  6. python下标越界怎么解决_切片python字符串时 为何不会引起下标越界?

    这里涉及到切片对象slice: a = '0123456789' r = slice(-100, 100) # -100:100 a_new = a[r] # 取缺省值a[:] print(a_new ...

  7. python修改html表格,使用styles和css更改pandas dataframe html表python中...

    这需要几个步骤: 首先导入HTML并重新输入 from IPython.display import HTML import re 你可以通过to_html方法得到html pandas. df_ht ...

  8. python dataframe dropna_在Python中使用熊猫在两个DataFrame之间进行值...

    嗨,我有两个像下面的DataFrames DF1 Alpha | Numeric | Special and | 1 | @ or | 2 | # lol ok | 4 | & DF2 wit ...

  9. python中iloc切片_如何使用iloc和loc 对Pandas Dataframe进行索引和切片

    Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 在这篇文章中,我们将使用iloc和loc来处理数据.更具体地说,我们将通过iloc和loc例子来学习切片和 ...

最新文章

  1. 转载:用 Tomcat 和 Eclipse 开发 Web 应用程序
  2. 计划将项目中使用entity framework的要点记录到改栏目下
  3. 【题解】luogu p1111 修复公路
  4. easyUI创建人员树
  5. 远洋整站下载器不能用https_最后下载个喜马拉雅
  6. java学习(119):set类
  7. webpack 入口文件 php,如何实现webpack多入口文件打包配置
  8. IoT“永恒之蓝”来袭:路由器等智能硬件成重灾区
  9. 【专家有话说】如何用TI-ONE与Angel框架玩转腾讯广告算法大赛?
  10. \n 屏幕换行 源码换行
  11. 计算机组成原理——第七章
  12. java ajax 返回乱码,解决使用$.ajax的时候得到返回乱码
  13. hping 详解_hping3使用
  14. 阿里巴巴等大厂的 Java岗位要求是什么?
  15. LeetCode 227. 基本计算器 II 【c++/java详细题解】
  16. WeaveSocket框架-Unity太空大战游戏-概述0
  17. 仙人掌之歌——路转峰回(4)
  18. Thinkphp5 引入第三方类库
  19. 计算机开机屏幕英语,电脑开机进不了系统,屏幕一堆英文数字怎么办?别急有方法...
  20. 独立游戏资源宝库,Unity AssetStore上最受欢迎的免费资源

热门文章

  1. python自定义函数画图_利用Python绘图和可视化(长文慎入)
  2. 昼猫笔记 从此告别复杂代码--JavaScript
  3. 记一笔冒泡排序和对它的优化
  4. KeeSoft.DBHelper.DBFactory 数据库访问类
  5. android listview万能适配器
  6. hdu 5285 二分图黑白染色
  7. STM32F4读写内部FLASH【使用库函数】
  8. 企业如何测试邮件系统反垃圾反病毒的实际效果
  9. RH5.4下安装samba服务器(1)
  10. 服务器更改IP(公网)地址后,Program Neighborhood客户端无法连接服务器