1. 程式人生 > >pandas按若干個列的組合條件篩選資料

pandas按若干個列的組合條件篩選資料

還是用圖說話

A檔案:

比如,我想篩選出“設計井別”、“投產井別”、“目前井別”三列資料都為11的資料,結果如下:

當然,這裡的篩選條件可以根據使用者需要自由調整,程式碼如下:

# -*- coding: utf-8 -*-
"""
Created on Wed Nov 29 10:46:31 2017

@author: wq
"""

import pandas as pd

#input.csv是那個大檔案,有很多很多行
df1 = pd.read_csv(u'input.csv', encoding='gbk')

#加encoding=‘gbk’是因為檔案中存在中文,不加可能出現亂碼

#這裡的篩選條件可以根據使用者需要進行修改

outfile = df1[(df1[u'設計井別']=='11') & (df1[u'投產井別']=='11') &(df1[u'目前井別']=='11')]

outfile.to_csv('outfile.csv', index=False, encoding='gbk')
有時我們也會有相反的一個需求,需要刪除“設計井別”、“投產井別”、“目前井別”三列資料都為11的那些行,效果如下:

程式碼如下:

#input.csv是那個大檔案,有很多很多行
df1 = pd.read_csv(u'input.csv', encoding='gbk')
df2 = pd.read_csv(u'outfile.csv', encoding='gbk')
#加encoding=‘gbk’是因為檔案中存在中文,不加可能出現亂碼
index = ~df1[u'漢字井號'].isin(df2[u'漢字井號'])
df4 = df1[index]
df4.to_csv('outfile1.csv', index=False, encoding='gbk')


相關推薦

pandas若干組合條件篩選資料

還是用圖說話 A檔案: 比如,我想篩選出“設計井別”、“投產井別”、“目前井別”三列資料都為11的資料,結果如下: 當然,這裡的篩選條件可以根據使用者需要自由調整,程式碼如下: # -*- coding: utf-8 -*- """ Created on Wed No

Python如何在列表,字典,集合中根據條件篩選資料

在程式設計中我們經常遇到下面的一些問題: 過濾掉列表[3, 9, -1, 10, 20, -2...]中的負數 篩選出字典{'Lilei': 79, 'Tim': 88, 'Lucy':92...}中的值高於90的項 篩選出集合{77, 89, 32, 20

GridView多條件篩選資料

最近有一個需求,需要對gridview中的資料進行多條件塞選,比較粗糙的解決辦法做了一個demo. 下面擷取的部分程式碼中 toolName,lcs, purpose, version是根據這些資料對gridview進行塞選。 在程式碼中注意用linq時判斷兩個數是否相等

Python小點點兒 條件篩選、刪除DataFrame的行

遇到清洗資料的問題,需要把某一列中為指定元素的資料,整行去除 嘗試了drop卻不能到達理想的效果, isin效果理想。 import pandas as pd df = pd.DataFrame(

pandas裡的groupby函式實現把一個大檔案某一的型別分成多檔案

上圖說話,淺顯易懂 大檔案: 可以發現上圖“單元這一行”有三個不同的值,我想以這一列為主鍵,分成三個檔案,檔名以主鍵內容命名,輸出如下圖: 對於GO7-33-286.csv、GO7-35-226.csv、GO7-37-166.csv這三個檔案內容,分別如下: 實現程式

pandas合併兩檔案

直接上圖,圖文並茂,相信你很快就知道要幹什麼。 A檔案: B檔案: 可以發現,A檔案中“漢字井號”這一列和B檔案中“WELL”這一列的屬性相同,以這一列為主鍵,把B檔案中“TIME”這一列資料新增到A檔案中,如果B檔案缺少某些行,則空著,最後A檔案的行數不變,效果如下:

續~pandas的時間值進行篩選

我之前爬了智聯的資訊,因為需要找工作,爬了好幾天的,但是我發現,幾天前的都不理會你的簡歷,所以我就用pandas按時間進行篩選。很簡單的一段程式,但是我們這行就是學一點記一點會一點。一般科技公司是不允許你帶優盤把你曾經的工作成品拷貝走的,被發現的話,後果更嚴重,

pandas DataFrame 中條件篩選或去重後重新定義連續的index

在DataFrame中進行條件篩選或者去重後index將變得不連續,那麼如何重設連續的index?data_train = data_train.reset_index(drop=True)#重設索引轉載請註明:【轉】http://blog.csdn.net/htbeker/

pandas 篩選資料,同時滿足多條件

top10_dire = df_dire.groupby('dire').id.agg('count').sort_values(ascending=False)[:10] ## top10_dire

多維容器組合元素

com 長度 conf dsm 應用 stc -i 無法 har <pre name="code" class="cpp">// alg2.cpp : 定義控制臺應用程序的入口點。 // #include "stdafx.h" //昨天碰到一個文件,有這

numpy ndarray 條件篩選數組,關聯篩選

ring ber style lang 如果 code https tail article 轉:http://http://blog.csdn.net/blackyuanc 作者:y小川 https://blog.csdn.net/blackyuanc/article/d

Excel中篩選表中相同的資料和快速填充一的公式

將兩個工作表放在一個檔案中,使用if函式和countif函式判斷 =if(判斷條件countif(區域,條件),真值,[假值]) 例項 =if(countif(Sheet2!$A$1:$A$44,A2),"S","F") "$"的用法 A1相對引用 $A1絕對引用列 A$1絕對引用行 $A$1絕對引用行

excel如何對資料進行多欄位同時排序、多條件組合和多條件篩選

對資料的排序不僅可以是對單列或單行進行排序,還可以進行多欄位同時排序,從而達到想要的效果。excel如何對資料進行多欄位同時排序、多條件組合和多條件篩選呢如圖所示 【解決方法,教程視訊資料如下】 本教程視訊資料來源:http://edu.51cto.com/course/15404.html 完整部落格

pandas屬性值篩選,isin

import pandas as pd df = pd.DataFrame({'countries':['US','UK','Germany','China']}) df Out[34]: countries 0 US 1 UK 2 Germany 3

若干集合元素的組合

1、明明都有實際例子可以檢視,可卻一直不願動手, 2、就因為在理解實際例子的時候覺得困難,就一直死迴圈 3、然後一直推延時間 4、其實可以不用看例子,知道大概的思路,跟著去做就行了 5、多動手,在執行中除錯,但是也要先考慮下是否可行 6、如果太複雜,太遠了,就只能東西實現看一下能不能實現了,不能光靠

三道習題(1、將單詞表中由相同字母組成的單詞歸成一類,每類單詞按照單詞的首字母排序,並 #每類中第一單詞字典序由大到小排列輸出各個類別。 #輸入格式:字典序由小到大輸入若干個單詞,每個單詞佔一行,以end結束輸入。)

#coding=gbk ''' 1、將單詞表中由相同字母組成的單詞歸成一類,每類單詞按照單詞的首字母排序,並按 #每類中第一個單詞字典序由大到小排列輸出各個類別。 #輸入格式:按字典序由小到大輸入若干個單詞,每個單詞佔一行,以end結束輸入。 #cinema #iceman #maps #spam #a

若干正整數,判斷每個數從高位到低位各位數字是否值從小到大排列,請根據題意,將程式補充完整。

#include <stdio.h> int fun1(int m); int main(void) { int n; scanf("%d", &n); while (n > 0) { if(fun1

pandas篩選出表中滿足另一個表所有條件資料

今天記錄一下pandas篩選出一個表中滿足另一個表中所有條件的資料。例如: list1 結構: 名字,ID,顏色,數量,型別。list1 = [['a',1,255,100,'03'],['a',2,481,50,'06'],['a',47,255,500,'03'],['b

Pandas技巧:將一分隔成多

專案中遇到一個問題,蒐集的資料只有一列,每行的資料都是通過特殊字元分隔,現在需要將其分隔成多個列。 原始資料如下: 0 0 155,NA,0,10,-99999,18,18,18,04,NA,0,-99999... 1 728,NA,24.1,74.81,-9999,18,18,1

pandas中,一次性刪除dataframe的多

之前沉迷於使用index刪除,然而發現pandas貌似有bug? import pandas as pd import numpy as np df = pd.DataFrame(np.arange(12).reshape(3,4),