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提取和去除关键词的资料请关注脚本之家其它相关文章!

相关文章

  • 基于PyQT5制作一个二维码生成器

    基于PyQT5制作一个二维码生成器

    这篇文章主要介绍了利用PyQT5制作一个简单的二维码生成器,并打包成exe可执行程序。文中的示例代码讲解详细,感兴趣的同学可以了解一下
    2021-12-12
  • Python如何使用内置库matplotlib绘制折线图

    Python如何使用内置库matplotlib绘制折线图

    这篇文章主要介绍了Python如何使用内置库matplotlib绘制折线图,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • python算法加密 pyarmor与docker

    python算法加密 pyarmor与docker

    这篇文章主要介绍了python算法加密 pyarmor与docker,,PyArmor 是一个用于加密和保护 Python 脚本的工具。它能够在运行时刻保护 Python脚本的二进制代码不被泄露,设置加密后Python源代码的有效期限,绑 定加密后的Python源代码到硬盘、网卡等硬件设备
    2022-06-06
  • 对Pyhon实现静态变量全局变量的方法详解

    对Pyhon实现静态变量全局变量的方法详解

    今天小编就为大家分享一篇对Pyhon实现静态变量全局变量的方法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • 使用Python代码识别股票价格图表模式实现

    使用Python代码识别股票价格图表模式实现

    这篇文章主要为大家介绍了使用Python代码识别股票价格图表模式的实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • python微元法计算函数曲线长度的方法

    python微元法计算函数曲线长度的方法

    今天小编就为大家分享一篇python微元法计算函数曲线长度的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • IPython 8.0 Python 命令行交互工具

    IPython 8.0 Python 命令行交互工具

    这篇文章主要介绍了IPython 8.0 Python 命令行交互工具,IPython 是 Python 的原生交互式 shell 的增强版,可以完成许多不同寻常的任务,下面我们就拉看看文章具体的介绍内容吧
    2022-01-01
  • 微信公众号脚本-获取热搜自动新建草稿并发布文章

    微信公众号脚本-获取热搜自动新建草稿并发布文章

    本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,这篇文章主要介绍了微信公众号脚本-获取热搜自动新建草稿并发布文章
    2025-04-04
  • python 三元运算符使用解析

    python 三元运算符使用解析

    这篇文章主要介绍了python 三元运算符使用解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • Python如何使用Gitlab API实现批量的合并分支

    Python如何使用Gitlab API实现批量的合并分支

    这篇文章主要介绍了Python如何使用Gitlab API实现批量的合并分支,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11

最新评论