本博主要总结DaraFrame数据筛选方法(loc,iloc,ix,at,iat),并以操作csv文件为例进行说明

1. 数据筛选

    a   b   c

(1)单条件筛选

df[df['a']>]
# 如果想筛选a列的取值大于30的记录,但是之显示满足条件的b,c列的值可以这么写
df[['b','c']][df['a']>]
# 使用isin函数根据特定值筛选记录。筛选a值等于30或者54的记录
df[df.a.isin([, ])]

(2)多条件筛选

  可以使用&(并)与| (或)操作符或者特定的函数实现多条件筛选

# 使用&筛选a列的取值大于30,b列的取值大于40的记录
df[(df['a'] > ) & (df['b'] > )]

(3)索引筛选

a. 切片操作

  df[行索引,列索引]或df[[列名1,列名2]]

#使用切片操作选择特定的行
df[:]
#传入列名选择特定的列
df[['a','c']]

b. loc函数

  当每列已有column name时,用 df [ ‘a’ ] 就能选取出一整列数据。如果你知道column names 和index,且两者都很好输入,可以选择 .loc同时进行行列选择。

In []: df.loc[,'c']
Out[]: In []: df.loc[:,['a','c']]
Out[]:
a c In []: df.loc[[,,],['a','c']]
Out[]:
a c

c. iloc函数

  如果column name太长,输入不方便,或者index是一列时间序列,更不好输入,那就可以选择 .iloc了,该方法接受列名的index,iloc 使得我们可以对column使用slice(切片)的方法对数据进行选取。这边的 i 我觉得代表index,比较好记点。

In []: df.iloc[,]
Out[]: In []: df.iloc[:,[,]]
Out[]:
a c In []: df.iloc[[,,],[,]]
Out[]:
a c In []: df.iloc[[,,],:]
Out[]:
a b

d. ix函数

  ix的功能更加强大,参数既可以是索引,也可以是名称,相当于,loc和iloc的合体。需要注意的是在使用的时候需要统一,在行选择时同时出现索引和名称, 同样在同行选择时同时出现索引和名称。

df.ix[:,['a','b']]
Out[]:
a b In []: df.ix[[,,],['a','b']]
Out[]:
a b In []: df.ix[[,,],[,]]
Out[]:
a c

e. at函数

  根据指定行index及列label,快速定位DataFrame的元素,选择列时仅支持列名。

In []: df.at[,'a']
Out[]:

f. iat函数

  与at的功能相同,只使用索引参数

In []: df.iat[,]
Out[]:

2. csv操作

  csv文件内容

Supplier Name,Invoice Number,Part Number,Cost,Purchase Date
Supplier X,-,,$500.00 ,//
Supplier X,-,,$500.00 ,//
Supplier X,-,,$750.00 ,//
Supplier X,-,,$750.00 ,//
Supplier Y,-,,$250.00 ,//
Supplier Y,-,,$250.00 ,//
Supplier Y,-,,$125.00 ,//
Supplier Y,-,,$125.00 ,//
Supplier Z,-,,$615.00 ,//
Supplier Z,-,,$615.00 ,//
Supplier Z,-,,$615.00 ,//
Supplier Z,-,,$615.00 ,//

(1)csv文件读写

  关于read_csv函数中的参数说明参考博客:https://blog.csdn.net/liuweiyuxiang/article/details/78471036

import pandas as pd

# 读写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) > ])
print(df.loc[(df["Supplier Name"].str.contains('Z'))|(df['Cost'].str.strip('$').astype(float) > 600.0),:]) #行中的值属于某个集合
li = [,]
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[:,::])
#列标题打印
print(df.loc[:,["Invoice Number", "Part Number"]])
#选取连续的行
print(df.loc[:,:])

python之pandas数据筛选和csv操作的更多相关文章

  1. Python之pandas数据加载、存储

    Python之pandas数据加载.存储 0. 输入与输出大致可分为三类: 0.1 读取文本文件和其他更好效的磁盘存储格式 2.2 使用数据库中的数据 0.3 利用Web API操作网络资源 1. 读 ...

  2. Pandas 数据筛选,去重结合group by

    Pandas 数据筛选,去重结合group by 需求 今小伙伴有一个Excel表, 是部门里的小伙9月份打卡记录, 关键字段如下: 姓名, 工号, 日期, 打卡方式, 时间, 详细位置, IP地址. ...

  3. python/numpy/pandas数据操作知识与技巧

    pandas针对dataframe各种操作技巧集合: filtering: 一般地,使用df.column > xx将会产生一个只有boolean值的series,以该series作为dataf ...

  4. python三大类型数据筛选

    如何在列表,字典,集合中根据条件刷选数据 说明: 本文分析的类型: 列表 字典 集合 结合每种类型筛选数据的方法的不同,区分出方法间的差异. 一.列表案例 需求:过滤掉列表中的负数. li = [1, ...

  5. 用Python将处理数据得到的csv文件分类(按顺序)保存

    用Python中的os和numpy库对文件夹及处理数据后得到的文件进行分类保存: import numpy as np import os for m in range(699,0,-35): cur ...

  6. 用Python的pandas框架操作Excel文件中的数据教程

    用Python的pandas框架操作Excel文件中的数据教程 本文的目的,是向您展示如何使用pandas 来执行一些常见的Excel任务.有些例子比较琐碎,但我觉得展示这些简单的东西与那些你可以在其 ...

  7. 小白学 Python 数据分析(6):Pandas (五)基础操作(2)数据选择

    人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...

  8. python 抓取数据,pandas进行数据分析并可视化展示

    感觉要总结总结了,希望这次能写个系列文章分享分享心得,和大神们交流交流,提升提升. 因为半桶子水的水平,一直在想写什么,为什么写,怎么写. 直到现在找到了一种好的办法: 1.写什么 自己手上掌握的,工 ...

  9. Python的工具包[1] -> pandas数据预处理 -> pandas 库及使用总结

    pandas数据预处理 / pandas data pre-processing 目录 关于 pandas pandas 库 pandas 基本操作 pandas 计算 pandas 的 Series ...

随机推荐

  1. 左连接、右连接、内连接和where

    首先可以看下w3school写的关于join的介绍: http://www.w3school.com.cn/sql/sql_join.asp on是关联条件,where是筛选条件 数据库在通过连接两张 ...

  2. 【hihocoder】01背包

    描述 且说上一周的故事里,小Hi和小Ho费劲心思终于拿到了茫茫多的奖券!而现在,终于到了小Ho领取奖励的时刻了! 小Ho现在手上有M张奖券,而奖品区有N件奖品,分别标号为1到N,其中第i件奖品需要ne ...

  3. python中定制类

    1.python中__str__和repr 如果要把一个类的实例变成 str,就需要实现特殊方法__str__(): class Person(object): def __init__(self, ...

  4. jz2440存储管理实验【学习笔记】

    平台:jz2440 作者:庄泽彬(欢迎转载,请注明作者) 说明:韦东山一期视频学习笔记 简介:先来简单的说明一下这次的实验,看看下图,我们的程序通过烧录器下载到nandflash当中去,之后在启动的时 ...

  5. TeamViewer---Linux远程控制利器

    TeamViewer中国官网 TeamViewer用户手册 参考链接一 参考链接二 参考链接三:每天一个linux命令(41):ps命令 简介 TeamViewer是一个远程控制软件,兼容于Micro ...

  6. 【bzoj3170】[Tjoi2013]松鼠聚会(数学题)

    题目传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=3170 这道题要在n个点中求一个点使其他点到该点的切比雪夫距离最小. 有个结论:$ (x ...

  7. notepad++使用正则表达式的查找替换

    使用正则表达式可以很好地完成很多繁琐耗时的工作,以下抄录editplus正则表达式的使用,同样适用于notepad++:表达式 说明\t 制表符.\n 新行.. 匹配任意字符.| 匹配表达式左边和右边 ...

  8. static变量的作用

    在C语言中,关键字static的意思是静态的,有3个明显的作用: 1. 在函数体内,静态变量具有记忆作用,即一个被声明为静态的变量在这一函数被调用的过程中其值维持不变. 2. 在模块内(但在函数体外) ...

  9. pip使用国内镜像解决安装超时

    刚刚用pip install pipenv时,发现抛出一个超时的问题 这是从files.pythonhosted.org去下载的,国内的网访问时慢的出奇,然后就会出现超时的情况.这时候,可以使用国内镜 ...

  10. spring boot配置德鲁伊

    1.引入相关依赖,全部依赖是上一篇spring boot+mybatis依赖的基础上,再加上下边的依赖,如下: <!-- Druid数据库连接池组件 --> <dependency& ...