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


Posted in Python onApril 12, 2018

如下所示:

>>> 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 price
0  1 a  11
1  2 a  22
2  3 b  33
3  4 b  44
>>>

根据index和columns取值

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

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

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

根据条件同时取得多个值

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

对一列赋值

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

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

【1】
>>> df['name'] = df['name'].apply(lambda x: x.upper())
>>> df
 classes name price
0  1 A  11
1  2 A  22
2  3 B  33
3  4 B  44
【2】
>>> df.loc[:, 'name'] = df['name'].apply(lambda x: x.upper())
>>> df
 classes name price
0  1 A  11
1  2 A  22
2  3 B  33
3  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 price
0  1 a  11
1  1 a  22
2  3 b  33
3  4 b  44
>>> df.drop_duplicates(subset=['classes', 'name'], inplace=True)
>>> df
 classes name price
0  1 a  11
2  3 b  33
3  4 b  44

多个条件分割字符串

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

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

>>> df = DataFrame({'name':['a','b','c','d'],'classes':[1,2,3,4],'price':[11,22,33,44]})
>>> df
 classes name price
0  1 a  11
1  2 b  22
2  3 c  33
3  4 d  44
【方法一】
>>> df = df.loc[df['name']!='a']
>>> df
 classes name price
1  2 b  22
2  3 c  33
3  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 b
0 A AA
1 B BB
>>> df[df['a'].str.contains(r'A')]
 a b
0 A AA
>>> df = pd.DataFrame({'a':['/api/', 'B'], 'b': ['AA', 'BB']})
>>> df
  a b
0 /api/ AA
1  B BB
>>> df[df['a'].str.contains(r'/api/')]
  a b
0 /api/ AA
>>>

把列变成index和把index变成列

df
  request_url visit_times
9 fofeasy_产品基本信息   7
8   投顾挖掘   6
5   投顾挖掘   5
6   投顾挖掘   5
7 fofeasy_产品基本信息   5
3 fofeasy_产品基本信息   4
4 fofeasy_产品基本信息   4
2   投顾挖掘   2
0  行业数据——其他   1
1  行业数据——其他   1
x = df.set_index('request_url')
x
    visit_times
request_url    
fofeasy_产品基本信息   7
投顾挖掘      6
投顾挖掘      5
投顾挖掘      5
fofeasy_产品基本信息   5
fofeasy_产品基本信息   4
fofeasy_产品基本信息   4
投顾挖掘      2
行业数据——其他     1
行业数据——其他     1
x.reset_index('request_url')
  request_url visit_times
0 fofeasy_产品基本信息   7
1   投顾挖掘   6
2   投顾挖掘   5
3   投顾挖掘   5
4 fofeasy_产品基本信息   5
5 fofeasy_产品基本信息   4
6 fofeasy_产品基本信息   4
7   投顾挖掘   2
8  行业数据——其他   1
9  行业数据——其他   1

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

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

dict变成dataframe

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

iloc

In [69]: df1.iloc[1:5, 2:4]
Out[69]: 
   4   6
2 0.301624 -2.179861
4 1.462696 -1.743161
6 1.314232 0.690579
8 0.014871 3.357427

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

Python 相关文章推荐
python生成随机mac地址的方法
Mar 16 Python
详解Python中的条件判断语句
May 14 Python
利用Python获取操作系统信息实例
Sep 02 Python
Python用for循环实现九九乘法表
May 31 Python
Python 生成 -1~1 之间的随机数矩阵方法
Aug 04 Python
Python实现的合并两个有序数组算法示例
Mar 04 Python
python爬虫之验证码篇3-滑动验证码识别技术
Apr 11 Python
Python+numpy实现矩阵的行列扩展方式
Nov 29 Python
QML用PathView实现轮播图
Jun 03 Python
基于python实现模拟数据结构模型
Jun 12 Python
浅谈如何使用python抓取网页中的动态数据实现
Aug 17 Python
Python 数据科学 Matplotlib图库详解
Jul 07 Python
使用python编写监听端
Apr 12 #Python
Python实现针对给定单链表删除指定节点的方法
Apr 12 #Python
pandas系列之DataFrame 行列数据筛选实例
Apr 12 #Python
python:pandas合并csv文件的方法(图书数据集成)
Apr 12 #Python
用pandas按列合并两个文件的实例
Apr 12 #Python
Python中多个数组行合并及列合并的方法总结
Apr 12 #Python
Python实现的凯撒密码算法示例
Apr 12 #Python
You might like
PHP mb_convert_encoding 获取字符串编码类型实现代码
2009/04/26 PHP
javascript 小型动画组件与实现代码
2010/06/02 PHP
php中autoload的用法总结
2013/11/08 PHP
JQuery 插件制作实践 xMarquee插件V1.0
2010/04/02 Javascript
javascript中运用闭包和自执行函数解决大量的全局变量问题
2010/12/30 Javascript
document.getElementById介绍
2011/09/13 Javascript
如何使Chrome控制台支持多行js模式——意外发现
2013/06/13 Javascript
js 日期比较相关天数代码
2014/04/02 Javascript
谷歌地图打不开的解决办法
2014/08/07 Javascript
js调试工具console.log()方法查看js代码的执行情况
2014/08/08 Javascript
js实现html table 行,列锁定的简单实例
2016/10/13 Javascript
jQuery扩展实现text提示还能输入多少字节的方法
2016/11/28 Javascript
Angular-Touch库用法示例
2016/12/22 Javascript
nodejs acl的用户权限管理详解
2018/03/14 NodeJs
jquery多级树形下拉菜单的实例代码
2019/07/09 jQuery
使用layui的router来进行传参的实现方法
2019/09/06 Javascript
浅谈编码,解码,乱码的问题
2016/12/30 Python
python使用opencv驱动摄像头的方法
2018/08/03 Python
在Python中画图(基于Jupyter notebook的魔法函数)
2019/10/28 Python
Pytorch DataLoader 变长数据处理方式
2020/01/08 Python
深入了解Python装饰器的高级用法
2020/08/13 Python
Python实现区域填充的示例代码
2021/02/03 Python
python绘图模块之利用turtle画图
2021/02/12 Python
使用CSS变量实现炫酷惊人的悬浮效果
2019/04/26 HTML / CSS
Kingsoft金山公司C/C++笔试题
2016/05/10 面试题
请写出char *p与"零值"比较的if语句
2014/09/24 面试题
护理专业自我鉴定
2014/01/30 职场文书
社区母亲节活动方案
2014/03/05 职场文书
竞选大队委员演讲稿
2014/04/28 职场文书
活动总结书
2014/05/08 职场文书
同志主要表现材料
2014/08/21 职场文书
申请吧主发表的感言
2015/08/03 职场文书
公司费用报销管理制度
2015/08/04 职场文书
职业规划从高考志愿专业选择开始
2019/08/08 职场文书
vue使用echarts实现折线图
2022/03/21 Vue.js
vmware虚拟机打不开vmx文件怎么办 ?vmware虚拟机vmx文件打开方法
2022/04/08 数码科技