Pandas 是一个强大的 Python 数据分析库,提供了高性能、易于使用的数据结构和数据分析工具。DataFrame 是 Pandas 中的一种数据结构,类似于表格,用于存储和操作二维数据。
在 Pandas 中,获取 DataFrame A 中包含 DataFrame B 的子字符串的所有行,可以通过以下几种方法实现:
str.contains
方法:merge
方法:这种操作在数据清洗、数据匹配、文本分析等场景中非常常见。例如,在处理日志文件时,可能需要查找包含特定关键字的行;或者在市场分析中,需要匹配包含特定品牌名称的产品信息。
假设我们有两个 DataFrame:
import pandas as pd
# 创建 DataFrame A
data_A = {
'ID': [1, 2, 3, 4, 5],
'Text': ['apple banana', 'orange', 'grape apple', 'banana', 'kiwi']
}
df_A = pd.DataFrame(data_A)
# 创建 DataFrame B
data_B = {
'Keyword': ['apple', 'banana']
}
df_B = pd.DataFrame(data_B)
str.contains
方法# 获取包含 DataFrame B 中所有关键字的行
result = df_A[df_A['Text'].str.contains('|'.join(df_B['Keyword']))]
print(result)
merge
方法# 将 DataFrame B 的关键字扩展成多行
df_B_expanded = df_B.assign(Keyword=df_B['Keyword'].str.split()).explode('Keyword')
# 使用 merge 方法进行匹配
result = df_A[df_A['Text'].str.contains('|'.join(df_B_expanded['Keyword']))]
print(result)
str.contains
适用于简单匹配,merge
适用于更复杂的匹配需求。通过以上方法,可以有效地获取 DataFrame A 中包含 DataFrame B 的子字符串的所有行。
领取专属 10元无门槛券
手把手带您无忧上云