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 18 20 22
4 24 26 28
5 30 32 34
6 36 38 40
7 42 44 46
8 48 50 52
9 54 56 58
(1)单条件筛选
df[df['a']>30]
# 如果想筛选a列的取值大于30的记录,但是之显示满足条件的b,c列的值可以这么写
df[['b','c']][df['a']>30]
# 使用isin函数根据特定值筛选记录。筛选a值等于30或者54的记录
df[df.a.isin([30, 54])]
(2)多条件筛选
可以使用&(并)与| (或)操作符或者特定的函数实现多条件筛选
# 使用&筛选a列的取值大于30,b列的取值大于40的记录
df[(df['a'] > 30) & (df['b'] > 40)]
(3)索引筛选
a. 切片操作
df[行索引,列索引]或df[[列名1,列名2]]
#使用切片操作选择特定的行
df[1:4]
#传入列名选择特定的列
df[['a','c']]
b. loc函数
当每列已有column name时,用 df [ ‘a’ ] 就能选取出一整列数据。如果你知道column names 和index,且两者都很好输入,可以选择 .loc同时进行行列选择。
In [28]: df.loc[0,'c']
Out[28]: 4In [29]: df.loc[1:4,['a','c']]
Out[29]:
a c1 6 10
2 12 16
3 18 22
4 24 28In [30]: df.loc[[1,3,5],['a','c']]
Out[30]:
a c1 6 10
3 18 22
5 30 34
c. iloc函数
如果column name太长,输入不方便,或者index是一列时间序列,更不好输入,那就可以选择 .iloc了,该方法接受列名的index,iloc 使得我们可以对column使用slice(切片)的方法对数据进行选取。这边的 i 我觉得代表index,比较好记点。
In [35]: df.iloc[0,2]
Out[35]: 4In [34]: df.iloc[1:4,[0,2]]
Out[34]:
a c1 6 10
2 12 16
3 18 22In [36]: df.iloc[[1,3,5],[0,2]]
Out[36]:
a c1 6 10
3 18 22
5 30 34In [38]: df.iloc[[1,3,5],0:2]
Out[38]:
a b1 6 8
3 18 20
5 30 32
d. ix函数
ix的功能更加强大,参数既可以是索引,也可以是名称,相当于,loc和iloc的合体。需要注意的是在使用的时候需要统一,在行选择时同时出现索引和名称, 同样在同行选择时同时出现索引和名称。
df.ix[1:3,['a','b']]
Out[41]:
a b1 6 8
2 12 14
3 18 20In [42]: df.ix[[1,3,5],['a','b']]
Out[42]:
a b1 6 8
3 18 20
5 30 32In [45]: df.ix[[1,3,5],[0,2]]
Out[45]:
a c1 6 10
3 18 22
5 30 34
e. at函数
根据指定行index及列label,快速定位DataFrame的元素,选择列时仅支持列名。
In [46]: df.at[3,'a']
Out[46]: 18
f. iat函数
与at的功能相同,只使用索引参数
In [49]: df.iat[3,0]
Out[49]: 18
2. csv操作
csv文件内容
Supplier Name,Invoice Number,Part Number,Cost,Purchase Date
Supplier X,001-1001,2341,$500.00 ,1/20/14Supplier X,001-1001,2341,$500.00 ,1/20/14Supplier X,001-1001,5467,$750.00 ,1/20/14Supplier X,001-1001,5467,$750.00 ,1/20/14Supplier Y,50-9501,7009,$250.00 ,1/30/14Supplier Y,50-9501,7009,$250.00 ,1/30/14Supplier Y,50-9505,6650,$125.00 ,2002/3/14Supplier Y,50-9505,6650,$125.00 ,2002/3/14Supplier Z,920-4803,3321,$615.00 ,2002/3/14Supplier Z,920-4804,3321,$615.00 ,2002/10/14Supplier Z,920-4805,3321,$615.00 ,2/17/14Supplier Z,920-4806,3321,$615.00 ,2/24/14
(1)csv文件读写
import pandas aspd
# 读写csv文件
df= pd.read_csv("supplier_data.csv")
df.to_csv("supplier_data_write.csv",index=None)
(2)筛选特定的行
#Supplier Nmae列中姓名包含'Z',或者Cost列中的值大于600
print(df[df["Supplier Name"].str.contains('Z')])
print(df[df['Cost'].str.strip('$').astype(float) > 600])
print(df.loc[(df["Supplier Name"].str.contains('Z'))|(df['Cost'].str.strip('$').astype(float) > 600.0),:])
#行中的值属于某个集合
li= [2341,6650]
print(df[df['Part Number'].isin(li)])
print(df.loc[df['Part Number'].astype(int).isin(li),:])
#行中的值匹配某个模式
print(df[df['Invoice Number'].str.startswith("001-")])
(3)选取特定的列
#选取特定的列
#列索引值,打印1,3列
print(df.iloc[:,1:4:2])
#列标题打印
print(df.loc[:,["Invoice Number", "Part Number"]])
#选取连续的行
print(df.loc[1:4,:])
python筛选出csv满足某条件的行_python之pandas数据筛选和csv操作相关推荐
- python筛选csv数据_pandas数据筛选和csv操作的实现方法
1. 数据筛选 a b c 0 0 2 4 1 6 8 10 2 12 14 16 3 18 20 22 4 24 26 28 5 30 32 34 6 36 38 40 7 42 44 46 8 4 ...
- python处理Excel实现自动化办公教学(数据筛选、公式操作、单元格拆分合并、冻结窗口、图表绘制等)【三】
相关文章: python处理Excel实现自动化办公教学(含实战)[一] python处理Excel实现自动化办公教学(含实战)[二] python处理Excel实现自动化办公教学(数据筛选.公式操作 ...
- python计算csv文件内的数据_Python利用pandas计算多个CSV文件数据值的实例
功能:扫描当前目录下所有CSV文件并对其中文件进行统计,输出统计值到CSV文件 pip install pandas import pandas as pd import glob,os,sys in ...
- python中csv库写入表头_python的pandas工具包,保存.csv文件时不要表头的实例
用pandas处理.csv文件时,有时我们希望保存的.csv文件没有表头,于是我去看了DataFrame.to_csv的document. 发现只需要再添加header=None这个参数就行了(默认是 ...
- pandas删除满足条件的行_入门Pandas练习
本节主要是自己学习pandas的练习,与你分享. 导入Pandas与NumPy import numpy as np import pandas as pd 生成Series时,pandas默认生成整 ...
- csv文件示例_如何在R中使用数据框和CSV文件-带有示例的详细介绍
csv文件示例 Welcome! If you want to start diving into data science and statistics, then data frames, CSV ...
- 【Python学习系列二十二】pandas数据筛选和排序
在Pandas中通过.sort和.loc函数也可以实现这两 个功能..sort函数可以实现对数据表的排序操作,.loc函数可以实现对数据表的筛选操作. 1.排序 sort函数主要包含6个参数:colu ...
- python同花顺交易接口_开启量化第一步!同花顺iFinD数据接口免费版简易操作教程...
金融市场波动频繁,投资往往会夹杂非理性的情绪.而量化交易,旨在以先进的数学模型替代人为的主观判断,利用计算机技术从庞大的历史数据中海选能带来超额收益的多种"大概率"事件以制定策略, ...
- python中字典的value可以为任意对象_Python学习之字典的删改查操作
字典的删改查操作https://www.zhihu.com/video/1185227901603094528 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值(key=>val ...
最新文章
- c++引用的自我见解
- [刘阳Java]_Web前端入门级练习_迅雷官宣网设计
- 基于xampp搭建的个人博客。
- mongoudb 等于_MongoDB常用操作
- 【DP】【期望】$P1850$换教室
- stylus之混合书写(Mixins)
- 软件工程 团队作业 #9
- python如何批量下载邮箱全部附件_Python编写执行测试用例及定时自动发送最新测试报告邮件...
- ICollection IEnumerable/IEnumerator IDictionaryEnumerator yield
- 《算法导论》读书笔记之第10章 基本数据结构之二叉树
- 手机改直供电并自动开启adb无线调试修改电量
- 怎么才可以使用 IPX 协议???
- mysql查询数据库剩余空间大小_MySQL中查询所有数据库占用磁盘空间大小
- Oliver Wyman的一年制PTA面试
- Thread 1: signal SIGABRT解决方法之一
- vue+腾讯地图标记弹框
- mysql员工星期排班表设计_excel表格怎样制作排班表 星期和月份快速填充,来看看吧...
- dlink交换机(DLINK交换机灯)
- Echarts 生成地图html
- GD32实战11__SPI FLASH
热门文章
- ora-01722 无效数字_错误提示ORA-01722: 无效数字一例
- IP地址划分、组播地址、公有IP、私有IP
- c语言实现一元多项式的除法,课内资源 - 基于C++的一元多项式的计算
- Masimo宣布首款用于 Root(R)患者监护与互联总机的第三方Masimo Open Connect(R)模块获得CE标记
- 文章阅读统计php,WordPress博客统计文章阅读次数及访客数并刷访问数
- 体验godaddy域名转入,添加A记录,及使用dnspod的NS
- 如何破解游戏包中的素材与3D模型
- 测试上线邮件书写规范
- 配置pcie网卡指示灯
- Manim文档及源码笔记-CE文档-示例库3使用Manim绘图