脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - pandas按若干个列的组合条件筛选数据的方法

pandas按若干个列的组合条件筛选数据的方法

2021-01-30 00:24destiny_python Python

下面小编就为大家分享一篇pandas按若干个列的组合条件筛选数据的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

还是用图说话

a文件:

pandas按若干个列的组合条件筛选数据的方法

比如,我想筛选出“设计井别”、“投产井别”、“目前井别”三列数据都为11的数据,结果如下:

pandas按若干个列的组合条件筛选数据的方法

当然,这里的筛选条件可以根据用户需要自由调整,代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
# -*- 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的那些行,效果如下:

pandas按若干个列的组合条件筛选数据的方法

代码如下:

?
1
2
3
4
5
6
7
#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按若干个列的组合条件筛选数据的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/destiny_python/article/details/78675036

延伸 · 阅读

精彩推荐