Python 多重列表,指定条件下的数据筛选

 针对多组相关数据(例如:同一时间轴下的多个位移量),根据用户给定条件进行数据筛选。

# -*- coding: utf-8 -*-
"""
Created on Mon Aug  5 09:53:30 2019

@author: yujin.wang
"""
def ConditionRemove(data,condition):
    '''
    data - list, multi-layer list.
    condition = string, judge condidtion.
    '''
    a =[]
    isflag = 1
    string ="if "+ condition +":\n"
    string +="                     for k in range(len(data)):\n   \
                        data[k].pop(i+1)\n   \
                  isflag = 1\n"
    while isflag == 1:
        a.extend(data)
        print data
        len0 = len(a[0])
        try:
            for i in range(len(a[0])):
                exec(string)
        except:
            if len(data[0]) == len0:
                break
    return data

if __name__ == '__main__':
    a =[[1,8,6,5,2,6],[1,4,3,6,5,7],[1,2,8,6,5,7]]
    print a
    condition = "(a[0][i]>=a[0][i+1])"
    a1 = ConditionRemove(a,condition)
    print a1

输入 a =[[1,8,6,5,2,6],[1,4,3,6,5,7],[1,2,8,6,5,7]] 和 condition = "(a[0][i]>=a[0][i+1])"

输出 a1=[[1, 8], [1, 4], [1, 2]]

### 使用 Python 对 xlsx 文件进行数据筛选Python 中,可以利用 `pandas` 库来高效地对 Excel 文件中的数据进行筛选。以下是具体方法: #### 安装依赖库 为了操作 `.xlsx` 文件,通常需要安装两个主要的库:`pandas` 和 `openpyxl`。前者用于数据分析和处理,后者作为引擎支持 `.xlsx` 格式的读写。 可以通过以下命令安装这些库: ```bash pip install pandas openpyxl ``` #### 数据筛选示例代码 下面是一个完整的例子,展示如何加载 Excel 文件并对其中的数据进行条件筛选: ```python import pandas as pd # 加载Excel文件到DataFrame对象中 df = pd.read_excel(r'path_to_your_file.xlsx', engine='openpyxl') # 假设我们有一个名为'Sales'的工作表,并希望筛选出销售额大于1000的所有记录 filtered_df = df[df['Sales'] > 1000] # 将筛选后的结果保存到新的Excel文件中 filtered_df.to_excel(r'output_filtered_data.xlsx', index=False) print("筛选完成并已保存至 output_filtered_data.xlsx") ``` 上述代码实现了以下几个功能: - 利用 `pd.read_excel()` 方法从指定路径加载 Excel 文件[^2]。 - 运用布尔索引技术 `[df['Sales'] > 1000]` 来过滤满足特定条件数据行[^3]。 - 调用 `to_excel()` 函数将经过筛选的结果导出为一个新的 Excel 文件。 #### 多重条件筛选 如果需要基于多个条件执行更复杂的筛选,则可采用逻辑运算符 (`&`, `|`) 组合不同条件表达式。例如: ```python # 筛选销售金额超过1000且地区为 'North' 的所有记录 complex_filter = (df['Sales'] > 1000) & (df['Region'] == 'North') result_df = df[complex_filter] ``` 这里需要注意的是,在多重条件之间应用逻辑与(`&`) 或者逻辑或(`|`)时,每个单独条件都应被圆括号包围以确保优先级正确。 #### 性能优化提示 当面对非常大的 Excel 文件时,考虑分批读取数据或将不必要的列排除在外能够显著提升效率。比如只选取需要用到的部分字段: ```python columns_of_interest = ['ID', 'Name', 'Sales'] subset_df = pd.read_excel('large_file.xlsx', usecols=columns_of_interest, engine='openpyxl') ``` 这样不仅可以减少内存消耗还能加快程序运行速度[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值