pandas删除包含指定内容的行

Outline

处理数据时,遇到文件中包含一些不需要的数据(行),需要把这些不符合要求的行给删除掉。

例如:该数据中应该都是2000年的数据,但是包含了一些2001年的数据,所以需要把2001年的数据给删除掉。

筛选出指定行

找到所有包含2000年的数据:

source_df[(source_df[‘date‘].map(lambda d: d.split(‘/‘)[0])).isin([‘2000’])] # source_df 为读取的csv文件对象

根据pandas中取反操作:”~“, 取出所有不包含2000年的数据:

source_df[~(source_df[‘date‘].map(lambda d: d.split(‘/‘)[0])).isin([year])]

删除不合法数据

source_df.drop(source_df[~(source_df[‘date‘].map(lambda d:d.split(‘/‘)[0])).isin([year])].index)  # 根据 drop和index 删除包含2001的数据

删除后DataFrame中就只包含2000年的数据

原文地址:https://www.cnblogs.com/bigtreei/p/10165031.html

时间: 2024-10-08 14:59:25

pandas删除包含指定内容的行的相关文章

Editplus 正则表达式 删除含有指定字符串的行 删除注释

1.删除含有指定字符串的行 替换:  ^.*(指定字符串).*$  为空 例如,删除含有"JOIN"的行, 替换:  ^.*JOIN.*$   为空 2.删除//行注释 替换: //.*$  为空 (需注意,此正则会误删在引号中的'//',  如 'http://www'  ) 3.删除/*...*/段注释 替换: //*.*/n*.*/*/  为空 (需要注意,此正则在Editplus中会有一定的误判,应该是bug,请在替换时单步观察)

java检测文件内是否包含指定内容

package com.test; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileReader; import java.io.IOException; import java.io.InputStreamReader; /** * 检测client文件是否包含指定名称 * @author Wdnncey * */ public class Baohan { public sta

判断指定文件中是否包含指定内容,如果没有, 则写入,如果有,则跳过

grep -q "内容" 文件(绝对路径) grep -q "set nu" /etc/vimrc if [ $? -eq 1 ];then 指定内容不存在 if [ $? -eq 0 ];then 指定内容存在 在此以vim默认配置项为例. grep -q "set nu" /etc/vimrc if [ $? -eq 1 ];then echo 'set nu' >> /etc/vimrc echo 'colorscheme de

遍历数据库,删除包含指定列的表的行数据-

IF OBJECT_ID ('dbo.spDeleteRowDate_In_DB') IS NOT NULL DROP PROCEDURE dbo.spDeleteRowDate_In_DB go create proc spDeleteRowDate_In_DB ( @compid int --公司ID ) AS DECLARE @tableName varchar(50) DECLARE My_Cursor CURSOR --定义游标 FOR (select OBJECT_NAME(id)

采用多线程和生产者消费者模式来实现对于一个目录以及所有子目录下的文件内容的搜索,打印出包含指定关键字的行.

利用ArrayBlockingQueue可以方便的实现生产者和消费者,所有消费者线程共用资源ArrayBlockingQueue对象,从而实现线程安全.生产者线程搜索当前目录及子目录,并且将相应的File对象添加到队列中,消费者线程对每个File对象进行关键字的查询,如果查到头,即停止查询. import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; import java.util.c

[Linux]搜索文件是否包含指定内容并返回文件名

在Linux系统中,find和grep都是很强大的命令,可以做很多很多事情,今天刚好有人问"如何查找哪些文件包含了特定字符串,并显示这些文件的名称". 第一种方法:使用grep,假设搜索所有的.cpp文件是否包含'open'字符串,如果包含了,则显示该文件,命令如下: grep -rl 'open' . --include=*.cpp 则执行结果如下: ./test/testall/file.cpp ./test/testall/shell_test.cpp ./test/daemon

SqlSever基础 count 查询一列中具有指定内容的行数是多少

镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ 1 table 2 code 1 --创建一个数据库 2 create database helloworld1 3 4 use master 5 drop database helloworld1 6 7 --用helloworld1这个数据库 8 use helloworld1 9 10 --

linux中查找包含指定内容的文件

##文件名+内容 grep -r "查询内容" 文件目录 ##只显示包含内容的文件名 grep -r -l "查询内容" 文件目录 ##文件名+内容 find 文件目录 -type f |xargs grep "查询内容"; eg: grep -r "version.app.xinyartech.com" /data/nginx/conf.d grep -r -l "version.app.xinyartech.co

shell 命令 grep -R 查询包含指定内容的文件

grep -R 举个栗子,在有上百个sql文件的目录下,查找使用 spark引擎 执行的文件. 代码是: grep -R spark ./* 返回的就是包含  spark 的sql文件名. 原文地址:https://www.cnblogs.com/drjava/p/10712365.html