下面是一个示例代码,演示了如何按列中的子字符串对数据框进行掩码:
import pandas as pd
# 创建示例数据框
data = {'A': ['apple', 'banana', 'cat', 'dog', 'elephant'],
'B': ['apple', 'banana', 'cat', 'dog', 'elephant'],
'C': ['apple', 'banana', 'cat', 'dog', 'elephant']}
df = pd.DataFrame(data)
# 定义掩码函数
def mask_df_by_substring(df, column, substring):
mask = df[column].str.contains(substring)
return df[mask]
# 对列'A'中包含子字符串'ap'的行进行掩码
masked_df = mask_df_by_substring(df, 'A', 'ap')
print(masked_df)
输出结果为:
A B C
0 apple apple apple
上述代码中,我们首先创建了一个示例数据框 df
,其中包含三列(A、B、C)的数据。然后,我们定义了一个名为 mask_df_by_substring
的函数,该函数接受一个数据框、一个列名和一个子字符串作为参数,并返回一个掩码后的数据框。
在函数内部,我们使用 str.contains
方法创建一个布尔掩码,该掩码指示了列中是否包含指定的子字符串。然后,我们使用这个掩码来选择满足条件的行,并返回掩码后的数据框。
最后,我们使用示例数据框 df
和函数 mask_df_by_substring
对列 'A' 中包含子字符串 'ap' 的行进行了掩码,并将结果存储在变量 masked_df
中。最后,我们打印出了掩码后的数据框。