Pyhton 批量筛选Excel的方法——Pandas的使用

Pyhton 批量筛选Excel的方法——Pandas的使用

摘要

在进行数据处理时,经常需要筛选出满足条件的数据,本文给出一种使用Python筛选Excel表格中数据的简单方法。

说明

对一张表几个字段的筛选无法体现Python处理数据的能力,本文所举案例只为示范说明。

1、初始化数据(可跳过)

假设有这样一个表,统计单位与会人员的信息,1表示到会,0表示缺席,session-1表示第一次会议,session-2表示第二次会议,以此类推。首先生成一个这样的数据表,在此基础上进行筛选:

Pyhton 批量筛选Excel的方法——Pandas的使用
生成数据所用的代码,供参考:
def init_data():

    file = xlwt.Workbook(encoding='utf-8')
    table = file.add_sheet('Sheet1')

    row = ['id', 'gender', 'age', 'session-1', 'session-2', 'session-3']
    gender = ['男','女']

    for j in range(6):
        table.write(0, j, row[j])

    for i in range(1,21):

        table.write(i, 0, i)

        table.write(i, 1, gender[random.randint(0,1)])

        table.write(i, 2, random.randint(18, 50))

        table.write(i, 3, random.randint(0, 1))
        table.write(i, 4, random.randint(0, 1))
        table.write(i, 5, random.randint(0, 1))

    file.save('data.xls')

2、根据条件筛选数据

假设条件为:18岁以上的男性分别参加这3次会议的数据。
具体方法为:
(1)先用pandas读取Excel的办法将数据读入,记为data,同时使用DataFrame函数使之在Python中也呈现为一个二维数组表,记为df;
(2)使用类似于语句 df[df['字段名1'] == 条件1]这样的语句进行筛选,同时进行一些简单计算。先上代码:

def select_data(path):

    data = pd.read_excel(path)

    df = pd.DataFrame(data)

    first_row = df[0:0]

    for row in first_row:
        if row.startswith('session'):

            df1 = df[(df[row] == 1) & (df['gender'] == '男') & (df['age'] < 45)]

            print(df1)

            print(sum(df1['age'])/len(df1[row]))

运算结果:

Pyhton 批量筛选Excel的方法——Pandas的使用
(3)补充说明:
① if 判断可以没有,我这里是为了一次性筛出3次会议的数据;
② 条件可以是单条件,多条件与或非的组合,例如条件改为:到会或是男性的45以下人员,条件语句写为:
((df[row] == 1) | (df['gender'] == '男')) & (df['age'] < 45)

相应的部分运算结果,以session-1为例:

Pyhton 批量筛选Excel的方法——Pandas的使用
以下是头文件和main函数的调用,代码组合后可以运行测试:
import random
import xlwt
import pandas as pd
if __name__ == '__main__':

    select_data('data.xls')

以上就是Python + Pandas筛选Excel数据的一个简单案例,实际上也可以筛选CSV数据,读入时使用 pd.read_csv()函数,关键在于筛选条件的书写,对于二维数组表的理解。

Original: https://blog.csdn.net/weixin_40754097/article/details/117385465
Author: 爱上树的Woody
Title: Pyhton 批量筛选Excel的方法——Pandas的使用

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/599860/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球