Real-world Examples
Data Processing Scenarios
Filtering Transactions
class Transaction:
def __init__(self, amount, category, date):
self.amount = amount
self.category = category
self.date = date
transactions = [
Transaction(100, "groceries", "2023-05-01"),
Transaction(50, "entertainment", "2023-05-02"),
Transaction(200, "utilities", "2023-05-03"),
Transaction(75, "groceries", "2023-05-04")
]
## Filter high-value grocery transactions
high_value_groceries = [
t for t in transactions
if t.category == "groceries" and t.amount > 75
]
Log File Analysis
class LogEntry:
def __init__(self, timestamp, level, message):
self.timestamp = timestamp
self.level = level
self.message = message
log_entries = [
LogEntry("2023-05-01 10:00", "ERROR", "Connection failed"),
LogEntry("2023-05-01 11:00", "INFO", "System startup"),
LogEntry("2023-05-01 12:00", "ERROR", "Database timeout")
]
## Filter error-level log entries
error_logs = [
log for log in log_entries
if log.level == "ERROR"
]
Data Filtering Workflow
graph TD
A[Raw Data] --> B[Filter Conditions]
B --> C[Processed Data]
C --> D[Analysis/Reporting]
D --> E[Decision Making]
Common Filtering Patterns
Scenario |
Filtering Technique |
Use Case |
Financial Data |
Conditional Filtering |
Remove low-value transactions |
Log Analysis |
Level-based Filtering |
Identify critical errors |
User Management |
Attribute Filtering |
Select specific user groups |
Scientific Data Processing
class Measurement:
def __init__(self, value, unit, type):
self.value = value
self.unit = unit
self.type = type
measurements = [
Measurement(25.5, "celsius", "temperature"),
Measurement(1013, "hPa", "pressure"),
Measurement(30.2, "celsius", "temperature"),
Measurement(980, "hPa", "pressure")
]
## Filter temperature measurements above 30
high_temp_measurements = [
m for m in measurements
if m.type == "temperature" and m.value > 30
]
Advanced Filtering Techniques
Combining Multiple Filters
def complex_filter(data, conditions):
return [
item for item in data
if all(condition(item) for condition in conditions)
]
## Example usage
def is_high_value(transaction):
return transaction.amount > 100
def is_essential_category(transaction):
return transaction.category in ["utilities", "groceries"]
filtered_transactions = complex_filter(
transactions,
[is_high_value, is_essential_category]
)
- Use generator expressions for large datasets
- Implement early stopping in complex filters
- Leverage built-in filtering methods
LabEx Practical Insight
At LabEx, we recommend developing flexible filtering strategies that can adapt to various data processing requirements.
Error Handling and Validation
def safe_filter(data, condition, default=None):
try:
return [item for item in data if condition(item)]
except Exception as e:
print(f"Filtering error: {e}")
return default or []