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是Python中一个非常流行的数据处理库,它提供了高效的数据结构和数据分析工具,可以方便地进行数据清洗、转换、重塑、分组、聚合等操作。以下是Pandas的一些基本用法和常用功能: 1. 导入Pandas库 在使用Pandas之前,需要先导入库: ```python import pandas as pd ``` 2. 数据结构 Pandas中有两种基本的数据结构:Series和DataFrame。 - Series:类似于一维数组,每个元素都有一个标签(即索引)。 ```python s = pd.Series([1, 3, 5, np.nan, 6, 8]) ``` - DataFrame:类似于二维表格,每可以是不同的数据类型,可以看作是多个Series组合而成。 ```python df = pd.DataFrame({ 'A': 1., 'B': pd.Timestamp('20130102'), 'C': pd.Series(1, index=list(range(4)), dtype='float32'), 'D': np.array([3] * 4, dtype='int32'), 'E': pd.Categorical(["test", "train", "test", "train"]), 'F': 'foo' }) ``` 3. 数据读取与写入 Pandas支持多种数据读取格式,包括csv、excel、json、sql等。其中,最常用的是csv和excel格式。Pandas也支持将数据写入到文件中。 - 读取csv文件: ```python df = pd.read_csv('file.csv') ``` - 读取excel文件: ```python df = pd.read_excel('file.xlsx') ``` - 将数据写入csv文件: ```python df.to_csv('file.csv', index=False) ``` - 将数据写入excel文件: ```python df.to_excel('file.xlsx', index=False) ``` 4. 数据查看与处理 - 查看数据的前若干行: ```python df.head() ``` - 查看数据的后若干行: ```python df.tail() ``` - 查看数据名: ```python df.columns ``` - 查看数据的索引: ```python df.index ``` - 查看数据数据类型: ```python df.dtypes ``` - 查看数据的描述性统计信息: ```python df.describe() ``` - 筛选数据: ```python df[df['A'] > 0] ``` - 排序数据: ```python df.sort_values(by='B') ``` - 重新设置索引: ```python df.reset_index() ``` - 缺失值处理: ```python df.dropna() # 删除包含缺失值的行 df.fillna(value=0) # 将缺失值填充为0 ``` 5. 数据分组与聚合 Pandas中的分组和聚合功能非常强大,可以方便地进行数据分析。 - 按照某进行分组: ```python df.groupby('A') ``` - 应用聚合函数: ```python df.groupby('A').sum() # 对分组后的数据进行求和 df.groupby('A').mean() # 对分组后的数据进行求平均值 ``` 6. 数据合并 Pandas中可以方便地进行数据合并操作。 - 合并两个DataFrame: ```python df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'], 'value': np.random.randn(4)}) df2 = pd.DataFrame({'key': ['B', 'D', 'E', 'F'], 'value': np.random.randn(4)}) pd.merge(df1, df2, on='key') ``` - 拼接两个DataFrame: ```python df1 = pd.DataFrame(np.zeros((3, 4)), columns=['A', 'B', 'C', 'D']) df2 = pd.DataFrame(np.ones((3, 4)), columns=['B', 'C', 'D', 'E']) pd.concat([df1, df2], axis=1) ``` 以上是Pandas的一些基本用法和常用功能,希望能对你有所帮助。如果有其他问题,可以继续问我。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值