侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

dataframe设置两个条件取值的实例

技术  /  管理员 发布于 7年前   172

如下所示:

>>> import pandas as pd>>> import numpy as np>>> from pandas import Series, DataFrame>>> df = DataFrame({'name':['a','a','b','b'],'classes':[1,2,3,4],'price':[11,22,33,44]})>>> df classes name price0  1 a  111  2 a  222  3 b  333  4 b  44>>> 

根据index和columns取值

>>> s = df.loc[0,'price']>>> s11

根据同行的columns的值取同行的另一个columns的值

>>> sex = df.loc[(df.classes==1)&(df.name=='a'),'price']>>> sex0 11Name: price, dtype: int64>>> sex = df.loc[(df.classes==1)&(df.name=='a'),'price'].values[0]>>> sex11

根据条件同时取得多个值

>>> name,price = df.loc[df.classes==1,('name','price')].values[0]>>> name'a'>>> price11>>>

对一列赋值

>>> df.loc[: , 'price']=0>>> df classes name price0  1 a  01  2 a  02  3 b  03  4 b  0>>>

对df的一个列进行函数运算

【1】>>> df['name'] = df['name'].apply(lambda x: x.upper())>>> df classes name price0  1 A  111  2 A  222  3 B  333  4 B  44【2】>>> df.loc[:, 'name'] = df['name'].apply(lambda x: x.upper())>>> df classes name price0  1 A  111  2 A  222  3 B  333  4 B  44>>>

对df的几个列进行函数运算

【1】>>> df[['classes','price']] = df[['classes', 'price']].applymap(lambda x: str(x))>>> print(type(df.loc[0, "classes"]))<class 'str'>>>> print(df.loc[0, "classes"])1【2】>>> df.loc[:, ['classes','price']] = df[['classes', 'price']].applymap(lambda x: int(x))>>> print(type(df.loc[0, "classes"]))<class 'int'>>>> print(df.loc[0, "classes"])1>>> 

对两个列进行去重

>>> df classes name price0  1 a  111  1 a  222  3 b  333  4 b  44>>> df.drop_duplicates(subset=['classes', 'name'], inplace=True)>>> df classes name price0  1 a  112  3 b  333  4 b  44

多个条件分割字符串

>>> fund_memeber = '赵四、 王五'>>> fund_manager_list = re.split('[;, 、]', fund_memeber)>>> fund_manager_list['赵四', '', '王五']#DataFrame构造器>>> df = DataFrame({'x':[1],'y':[2]})>>> df x y0 1 2>>>

删除某列值为特定值得那一行

>>> df = DataFrame({'name':['a','b','c','d'],'classes':[1,2,3,4],'price':[11,22,33,44]})>>> df classes name price0  1 a  111  2 b  222  3 c  333  4 d  44【方法一】>>> df = df.loc[df['name']!='a']>>> df classes name price1  2 b  222  3 c  333  4 d  44>>> 【方法二】 df.drop(df[df.name=='a'].index,axis=0) #筛选df的每列值包含某个字段‘/a' >>> import pandas as pd>>> df = pd.DataFrame({'a':['A', 'B'], 'b': ['AA', 'BB']})>>> df a b0 A AA1 B BB>>> df[df['a'].str.contains(r'A')] a b0 A AA>>> df = pd.DataFrame({'a':['/api/', 'B'], 'b': ['AA', 'BB']})>>> df  a b0 /api/ AA1  B BB>>> df[df['a'].str.contains(r'/api/')]  a b0 /api/ AA>>>

把列变成index和把index变成列

df  request_url visit_times9 fofeasy_产品基本信息   78   投顾挖掘   65   投顾挖掘   56   投顾挖掘   57 fofeasy_产品基本信息   53 fofeasy_产品基本信息   44 fofeasy_产品基本信息   42   投顾挖掘   20  行业数据――其他   11  行业数据――其他   1x = df.set_index('request_url')x    visit_timesrequest_url    fofeasy_产品基本信息   7投顾挖掘      6投顾挖掘      5投顾挖掘      5fofeasy_产品基本信息   5fofeasy_产品基本信息   4fofeasy_产品基本信息   4投顾挖掘      2行业数据――其他     1行业数据――其他     1x.reset_index('request_url')  request_url visit_times0 fofeasy_产品基本信息   71   投顾挖掘   62   投顾挖掘   53   投顾挖掘   54 fofeasy_产品基本信息   55 fofeasy_产品基本信息   46 fofeasy_产品基本信息   47   投顾挖掘   28  行业数据――其他   19  行业数据――其他   1

pandas 按照列A分组,将同一组的列B求和,生成新的Dataframe

>>>df.groupby(by=['request_url'])['visit_times'].sum()>>>request_urlfofeasy_产品基本信息 20投顾挖掘    18行业数据――其他   2Name: visit_times, dtype: int64

dict变成dataframe

In [15]: dict = pd.DataFrame({'x':1, 'y':2}, index=[0])In [16]: dictOut[16]: x y0 1 2

iloc

In [69]: df1.iloc[1:5, 2:4]Out[69]:    4   62 0.301624 -2.1798614 1.462696 -1.7431616 1.314232 0.6905798 0.014871 3.357427

以上这篇dataframe设置两个条件取值的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


  • 上一条:
    Pandas 数据框增、删、改、查、去重、抽样基本操作方法
    下一条:
    pandas系列之DataFrame 行列数据筛选实例
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 2024.07.09日OpenAI将终止对中国等国家和地区API服务(0个评论)
    • 2024/6/9最新免费公益节点SSR/V2ray/Shadowrocket/Clash节点分享|科学上网|免费梯子(1个评论)
    • 国外服务器实现api.openai.com反代nginx配置(0个评论)
    • 2024/4/28最新免费公益节点SSR/V2ray/Shadowrocket/Clash节点分享|科学上网|免费梯子(1个评论)
    • 近期文章
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2017-07
    • 2017-08
    • 2017-09
    • 2018-01
    • 2018-07
    • 2018-08
    • 2018-09
    • 2018-12
    • 2019-01
    • 2019-02
    • 2019-03
    • 2019-04
    • 2019-05
    • 2019-06
    • 2019-07
    • 2019-08
    • 2019-09
    • 2019-10
    • 2019-11
    • 2019-12
    • 2020-01
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-08
    • 2020-09
    • 2020-10
    • 2020-11
    • 2021-04
    • 2021-05
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-12
    • 2022-01
    • 2022-02
    • 2022-03
    • 2022-04
    • 2022-05
    • 2022-06
    • 2022-07
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-06
    • 2023-07
    • 2023-08
    • 2023-09
    • 2023-10
    • 2023-12
    • 2024-02
    • 2024-04
    • 2024-05
    • 2024-06
    • 2025-02
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客