如何基于多条件从DataFrame提取数据并生成可存储新DataFrame
基于条件筛选DataFrame并导出为CSV/Excel
需求
需要从DataFrame中筛选出包含OnlyFans相关内容或TOP 0.01%标识的数据,目前已通过循环打印符合条件的记录,希望生成可保存为CSV或Excel的新DataFrame。
解决方案
直接使用pandas的布尔索引进行筛选,比循环更高效简洁,步骤如下:
构建筛选条件
针对需求中的匹配规则,用str.contains实现模糊匹配,通过case=False忽略大小写,na=False处理空值避免报错:# 逐个列构建匹配条件 cond_desc = dataframe['Description'].str.contains('onlyfans', case=False, na=False) cond_name_onlyfans = dataframe['Display_Name'].str.contains('onlyfans', case=False, na=False) cond_name_top = dataframe['Display_Name'].str.contains('TOP 0.01%', case=False, na=False) cond_content_top = dataframe['Content'].str.contains('top 0.01%', case=False, na=False) # 合并条件:满足任一条件即保留 filter_rule = cond_desc | cond_name_onlyfans | cond_name_top | cond_content_top生成筛选后的新DataFrame
filtered_df = dataframe[filter_rule]导出为CSV或Excel
# 保存为CSV(index=False不保留行索引) filtered_df.to_csv('filtered_result.csv', index=False, encoding='utf-8') # 保存为Excel(需先安装依赖:pip install openpyxl) filtered_df.to_excel('filtered_result.xlsx', index=False)
说明
- 利用pandas向量化操作替代手动循环,在大数据量场景下效率提升明显。
- 筛选后的
filtered_df保留原DataFrame所有列信息,可直接用于后续分析或导出。
内容的提问来源于stack exchange,提问作者Lalit Joshi
相关产品推荐
相关产品推荐

