如何在特定字符串参数下取消Pandas DataFrame过滤逻辑?
解决方案
直接修改get_time函数,加入特殊条件判断即可实现需求:
import pandas as pd df = pd.read_csv('data.csv', nrows=100000) def get_time(event_1, event_2): # 特殊场景:返回原始数据集 if event_1 == 'open' and event_2 == 'close': return df.copy() # 常规场景:按事件筛选 filtered_df = df[(df['event_name'] == event_1) | (df['event_name'] == event_2)] return filtered_df.copy() # 调用示例 # 返回全量原始数据 final_df = get_time(event_1='open', event_2='close') # 返回仅含open和jump的数据集 filtered_result = get_time(event_1='open', event_2='jump')
逻辑说明
- 增加条件判断:当传入的两个参数恰好是
event_1='open'且event_2='close'时,直接返回原始数据集的副本(使用copy()避免后续操作修改原始数据)。 - 其他参数组合下,保持原有逻辑筛选
event_name匹配指定事件的行,同样返回副本保证数据独立性。
适配说明
如果你的原始数据列名是event(而非代码中的event_name),只需将代码中的df['event_name']替换为df['event']即可。
内容的提问来源于stack exchange,提问作者YanRemes
相关产品推荐
相关产品推荐

