Python实现提取和去除数据中包含关键词的行

 更新时间:2023年08月01日 16:48:24   作者:上景  
这篇文章主要介绍了Python如何提取数据中包含关键词的行已经如何去除数据中包含关键词的行,文中的示例代码讲解详细,需要的可以参考一下

帮对象处理所需数据时写的代码——第六弹(实现功能一:Python实现根据某列中找到的关键字从原始数据中过滤行,然后匹配到关键词的行数据保存到新的 CSV 文件中;实现功能二:从原始数据中删除“删除的关键字”列中找到的任何关键字的行,然后将剩余数据保存到新的 CSV 文件中)

功能一:筛选出包含关键词的行

第一节 读取数据和设置

在这一部分中,代码从两个不同的源读取数据:

It reads "Table 1" from an Excel file (需要保留的关键词.xlsx) into a DataFrame called keywords_df.
It reads "Table 2" from a CSV file (原始数据.csv) into another DataFrame called data_df.

创建一个名为的空 DataFrame,result_df其列与相同data_df。

import pandas as pd
from tqdm import tqdm
# Read Table 1 
keywords_df = pd.read_excel(r"C:\Users\Desktop\需要保留的关键词.xlsx")
# Read Table 2 (数据表格)
data_df = pd.read_csv(r"C:\Users\Desktop\原始数据.csv", dtype=str)
# Create an empty Table 3
result_df = pd.DataFrame(columns=data_df.columns)
# Iterate over the keywords in Table 1

第二节 迭代关键字并过滤数据

在此部分中,代码使用循环和库迭代“关键字”列中的每个关键字,tqdm以显示名为“处理”的进度条。

对于每个关键字,它执行以下步骤:

它搜索“表 2”( data_df) 中“地址”列包含当前关键字的行。该str.contains()方法用于检查部分匹配,并na=False用于忽略缺失值。

匹配的行存储在名为 的 DataFrame 中matched_rows。

使用, 将DataFramematched_rows附加到先前创建的空 DataFrame 中,以重置串联 DataFrame 的索引。result_dfpd.concat()ignore_index=True

for keyword in tqdm(keywords_df['关键词'], desc="Processing"):
    # Find rows in Table 2 where the "地址" column matches the keyword
    matched_rows = data_df[data_df['地址'].str.contains(keyword, na=False)]
    # Append the matched rows to Table 3
    result_df = pd.concat([result_df, matched_rows], ignore_index=True)

第三节 删除重复行并保存结果

在这一部分中,代码执行以下步骤:

它使用该方法根据所有列从“表 3”( ) 中删除重复行drop_duplicates()。DataFrameresult_df已更新为仅包含唯一行。

使用该方法将删除重复行的结果 DataFrame 保存到名为“筛选出包含关键词的行.csv”的新 CSV 文件中to_csv()。设置index为False避免将 DataFrame 索引保存为 CSV 文件中的单独列。

最后,打印“Query Complete”,表示关键字搜索、过滤和CSV保存过程已完成。

# Remove duplicate rows from Table 3 based on all columns
result_df = result_df.drop_duplicates()
# Save Table 3 to a CSV file
result_df.to_csv(r"C:\Users\Desktop\筛选出包含关键词的行.csv", index=False)
# Print "Query Complete"
print("Query Complete")

第四节 运行示例

原始数据如下:

需要保留的关键词假设如下: 

代码运行完毕后(只保留了包含太原市和阳泉市的行):

完整代码

import pandas as pd
from tqdm import tqdm
# Read Table 1 
keywords_df = pd.read_excel(r"C:\Users\Desktop\需要保留的关键词.xlsx")
# Read Table 2 (数据表格)
data_df = pd.read_csv(r"C:\Users\Desktop\原始数据.csv", dtype=str)
# Create an empty Table 3
result_df = pd.DataFrame(columns=data_df.columns)
# Iterate over the keywords in Table 1
for keyword in tqdm(keywords_df['关键词'], desc="Processing"):
    # Find rows in Table 2 where the "地址" column matches the keyword
    matched_rows = data_df[data_df['地址'].str.contains(keyword, na=False)]
    # Append the matched rows to Table 3
    result_df = pd.concat([result_df, matched_rows], ignore_index=True)
# Remove duplicate rows from Table 3 based on all columns
result_df = result_df.drop_duplicates()
# Save Table 3 to a CSV file
result_df.to_csv(r"C:\Users\Desktop\筛选出包含关键词的行.csv", index=False)
# Print "Query Complete"
print("Query Complete")

功能二:去除掉包含关键词的行

第一节 数据加载

在这一部分中,代码导入所需的库、pandas 和 tq​​dm。然后它从外部文件加载两个数据集。

import pandas as pd
from tqdm import tqdm
# Read Table 1
keywords_df = pd.read_excel(r"C:\Users\Desktop\需要删除的关键词.xlsx")
# Read Table 2
data_df = pd.read_csv(r"C:\Users\Desktop\筛选包含关键词的行.csv", dtype=str)

第二节 关键字处理和过滤

该部分涉及迭代keywords_dfDataFrame 中的每个关键字。对于每个关键字,代码都会搜索data_df“地址”列包含该关键字作为子字符串的行。结果存储在matched_rows.

for keyword in tqdm(keywords_df['删除的关键词'], desc="Processing"):
    matched_rows = data_df[data_df['地址'].str.contains(keyword, na=False, regex=False)]
    data_df = data_df[~data_df['地址'].str.contains(keyword, na=False, regex=False)]

第三节 保存和完成

在这一部分中,DataFrame中的剩余数据data_df(在过滤掉具有匹配关键字的行之后)将保存到桌面上名为“消失掉包含关键字的行.csv”的新CSV文件中。该index=False参数确保索引列不会保存到 CSV 文件中。最后,脚本打印“Query Complete”,表明关键字处理和过滤操作已完成。

data_df.to_csv(r"C:\Users\Desktop\去除掉包含关键词的行.csv", index=False)
print("Query Complete")

第四节 运行示例

原始数据如下:

需要删除的关键词假设如下: 

代码运行完毕后(删除了包含太原市和阳泉市的行):

完整代码 

import pandas as pd
from tqdm import tqdm
# Read Table 1 
keywords_df = pd.read_excel(r"C:\Users\Desktop\需要删除的关键词.xlsx")
# Read Table 2 
data_df = pd.read_csv(r"C:\Users\Desktop\原始数据.csv", dtype=str)
# Iterate over the keywords in Table 1
for keyword in tqdm(keywords_df['删除的关键词'], desc="Processing"):
    # Find rows in Table 2 where the "地址" column contains the keyword as a substring
    matched_rows = data_df[data_df['地址'].str.contains(keyword, na=False, regex=False)]
    # Remove the matched rows from Table 2
    data_df = data_df[~data_df['地址'].str.contains(keyword, na=False, regex=False)]
# Save the remaining data to a CSV file
data_df.to_csv(r"C:\Users\Desktop\去除掉包含关键词的行.csv", index=False)
# Print "Query Complete"
print("Query Complete")
 

上述代码注意文件的格式,有csv格式和xlsx格式,根据需要适当修改程序即可。

以上就是Python实现提取和去除数据中包含关键词的行的详细内容,更多关于Python提取和去除关键词的资料请关注脚本之家其它相关文章!

相关文章

  • python开发飞机大战游戏

    python开发飞机大战游戏

    这篇文章主要为大家详细介绍了python开发飞机大战游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • Python实现完整的事务操作示例

    Python实现完整的事务操作示例

    这篇文章主要介绍了Python实现完整的事务操作,结合实例形式分析了Python操作mysql数据库相关事务操作的具体流程与实现技巧,需要的朋友可以参考下
    2017-06-06
  • python将三维数组展开成二维数组的实现

    python将三维数组展开成二维数组的实现

    今天小编就为大家分享一篇python将三维数组展开成二维数组的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • Python并发:多线程与多进程的详解

    Python并发:多线程与多进程的详解

    今天小编就为大家分享一篇关于Python并发:多线程与多进程的详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • python批量替换页眉页脚实例代码

    python批量替换页眉页脚实例代码

    这篇文章主要介绍了python批量替换页眉页脚实例代码,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • pandas函数isnull的具体使用

    pandas函数isnull的具体使用

    本文主要介绍了pandas函数isnull的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • Python中处理YAML文件的使用技巧分享

    Python中处理YAML文件的使用技巧分享

    在日常开发中,你是否经常需要处理各种配置文件?是否曾为不同环境下的配置管理而头疼?今天我们来聊聊Python中处理YAML文件的实用技巧,让你的配置管理变得更加轻松,需要的朋友可以参考下
    2025-11-11
  • Python调用腾讯API实现人脸身份证比对功能

    Python调用腾讯API实现人脸身份证比对功能

    这篇文章主要介绍了Python调用腾讯API进行人脸身份证比对,简单介绍了调用腾讯云API步骤,通过完整代码展示与结果,需要的朋友可以参考下
    2022-04-04
  • 讲清楚fit_transform()和transform()的区别及说明

    讲清楚fit_transform()和transform()的区别及说明

    这篇文章主要介绍了讲清楚fit_transform()和transform()的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • Python类的定义和使用详情

    Python类的定义和使用详情

    这篇文章主要介绍了Python类的定义和使用详情,在Python中,类表示具有相同属性和方法的对象的集合,文章围绕主题相关资料展开更多的相关介绍,需要的小伙伴可以参考一下
    2022-06-06

最新评论