python筛选出csv满足某条件的行_Python之根据条件筛选特定行
转载于博主flash胜龙的文章,感谢博主的总结与分享。
一、选取几列组成新的dataframe:
df = df[['A列列名', 'S列列名', 'H列列名']]
二、选取某列'STATUS'里面元素为"ACTIVE"的行,即删掉列STATUS元素不是ACTIVE的行
df = df[df['STATUS'] == "ACTIVE"]
(单项条件搜索,类似SELECT ALL WHERE df.STATUS = ACTIVE)
三、选取'BADTHING'列为元素空的行,即去掉BADTHING所在列中的空行所在行数据,组成一个新的dataframe
df = df[df['BADTHING'].isnull()]
(空值搜索)
四、选取GOODREASON列元素为列表['quality', 'cheap']内元素的行,即可用特定列表内容进行筛选
df = df[df['GOODREASON'].isin(['quality', 'cheap'])]
(多项条件搜索,类似SELECT ALL WHERE df.GOODREASON= quality AND cheap)
五、分组并进行遍历,运用groupby和for:
groupByNew = df.groupby('CITY', sort=False)
for name, groupData in groupByNew:
# TODO …… ……
如代码所示,我们可以对dataframe以某列'CITY'进行分组。我们如何取出某组的数据呢?当然是用
for循环。取出来的name即是组名,而groupData同样是一个dataframe,可以进行更进一步操作。
六、对Series数据进行排序:
series= series.sort_values(ascending=False) # 进行从大到小排序
进阶:关于groupby的一些信息:
在进行groupby运算后,直接打印会得一个object信息,添加groups参数后
print df.groupby(by=['CITY']).groups
打印出来会是带group标签和原数据行标签(也就是原来dataframe里面对应行的index)的组合信息:
{'BEIJING': [25998L, 26134L, 26135L, 26235L, 26340L], 'SHANGHAI': [33370L, 33426L, 33541L], 'CHENGDU': [26153L]
我们可以看到,按照groups来print,得出city为北京的情况下,对应原来的行标签第25998行、26134行等
即使指定了某列:
print df.groupby(by=['CITY'])['QUANTITY'].groups
依然会得出相同的结果:
{'BEIJING': [25998L, 26134L, 26135L, 26235L, 26340L], 'SHANGHAI': [33370L, 33426L, 33541L], 'CHENGDU': [26153L]
除非我们把每个分组的所有行都整理成一行,如用sum来求和:
print df.groupby(by=['CITY'])['QUANTITY'].sum()
这样就可以成功转换成dataframe了:
CITY
BEIJING 5
SHANGHAI 207
CHENGDU 518
……
汇总说明如下:
print '----------NEW------------\n', type(df.groupby(by=['CITY']))
print '----------NEW------------\n', type(df.groupby(by=['CITY']).sum())
print '----------NEW------------\n', type(df.groupby(by=['CITY'])['QUANTITY'])
print '----------NEW------------\n', type(df.groupby(by=['CITY'])['QUANTITY'].sum())
所得结果为:
----------NEW------------
----------NEW------------
----------NEW------------
----------NEW------------
说明:
一个dataframe经过groupby以后得到的类型是pandas.core.groupby.DataFrameGroupBy。而用for in循环取出的每个项的类型是pandas.core.frame.DataFrame
一个dataframe经过groupby再进行sum以后仍然是dataframe(不过具体通过那一列来sum有待考证)
一个dataframe经过groupby以后再进行列选取,得到的是pandas.core.groupby.SeriesGroupBy类型。可知用for in循环取出的是pandas.core.series.Series
一个series经过groupby再进行sum以后仍然是series
python筛选出csv满足某条件的行_Python之根据条件筛选特定行相关推荐
- python筛选出csv满足某条件的行_python之pandas数据筛选和csv操作
本博主要总结DaraFrame数据筛选方法(loc,iloc,ix,at,iat),并以操作csv文件为例进行说明 1. 数据筛选 a b c0 0 2 4 1 6 8 10 2 12 14 16 3 ...
- python条件循环叠加_Python基础:条件判断与循环的两个要点
一.条件判断: Python中,条件判断用if语句实现,多个条件判断时用if...elif实现:看下面一段程序 #python 3.3.5#test if...elif age = 20 if age ...
- python删除特定的几行数据_Python:分成几行,并根据搜索删除特定行 - python
我有一个csv文件,如下所示,并以我的一点python知识,我试图将其内容分为基于" sec"的行作为开始字段,并删除包含sip:+ 99 *,sip:+ 88 *的字段的特定行, ...
- python中去除字符串中首尾空格的函数_Python中去除字符串首尾特定字符的函数:strip()...
Python中strip()函数的作用是去除一个字符串前导和尾部的特定字符,并返回结果字符串. Python中strip()函数默认是删除字符串前导和尾部空格,通过设定参数,也可以去除字符串前导和尾部 ...
- python提取包含特定字符串的行_python语言----txt中搜索特定字符串所在行
打开IDLE(python),并新创建一个py文件,编辑内容为: '''本示例演示如何在一个txt文件中搜索特定的字符串,并将其行显示''''''# 1. 打开文件# 2. 读取行信息# 3. 判断是 ...
- python 按条件筛选行_Python之根据条件筛选特定行
转载于博主flash胜龙的文章,感谢博主的总结与分享. 一.选取几列组成新的dataframe: df = df[['A列列名', 'S列列名', 'H列列名']] 二.选取某列'STATUS'里面元 ...
- python条件语句练习题_python学习-7 条件语句 while循环 + 练习题
1.死循环 while 1 == 1: print('ok') 结果是一直循环 2.循环 count = 0 while count < 10: print(count) count = cou ...
- python去重复行_python 去除Excel中的重复行数据
原博文 2019-08-05 16:15 − 导入pandasimport pandas as pd1.读取excel中的数据:frame = pd.DataFrame(pd.read_csv('ex ...
- pythonif多个条件同时满足_Python基础:条件控制if
if 语句:条件判断1.每个条件后面要使用冒号(:),表示接下来是满足条件后要执行的语句块. 2.使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块. 3.python中,空字符串,空列表,空 ...
- python删除空值的行_python如何删除列为空的行
1.摘要 dropna()方法,能够找到DataFrame类型数据的空值(缺失值),将空值所在的行/列删除后,将新的DataFrame作为返回值返回. 2.函数详解 函数形式:dropna(axis= ...
最新文章
- [转].NET牛人应该知道些什么
- CSS_文字与特殊符号浏览器兼容性
- MySQL 的发展历史和版本分支:
- Expression Blend实例中文教程(4) - 布局控件快速入门Canvas
- tensorflow计算网络占用内存_详细图解神经网络梯度下降法(tensorflow计算梯度)...
- vue-router 跳转原理
- python writerow参数_csv文件的输出结果TypeError writerow()接受2个位置参数,但给出了5个...
- 基于JAVA+Servlet+JSP+MYSQL的酒店管理系统
- 使用setsockopt TCP_NODELAY禁用 Nagle算法
- 四、矩阵特征值与特征向量的计算
- 实现RedHat6.3全屏,解决最大分辨率只有800*600
- 【申博攻略】三.北交计算机学院学术型博士“申请-考核”攻略(经验分享篇)
- c语言中开方,C++_详细解析C语言中的开方实现,关于C语言中的开方计算,首先 - phpStudy...
- [Python从零到壹] 十八.可视化分析之Basemap地图包入门详解
- c花体复制_求类似ℒℴѵℯ 这样的花体英文字母符号,可以直接复制的
- 急需“五彩连珠”小游戏的代码
- 瑜欣平瑞通过注册:年营收6.6亿 胡云平一家三口为实控人
- XMind:超越FreeMind的思维导图软件
- Python爬虫伪装,请求头User-Agent池,和代理IP池搭建使用
- 完美解决 手机软键盘遮挡问题