以下是一个示例代码,展示如何按行值比较数据框的列,并选择与匹配模式相符的列:
import pandas as pd
# 创建示例数据框
data = {'col1': [1, 2, 3, 4, 5],
'col2': ['apple', 'banana', 'apple', 'banana', 'apple'],
'col3': ['red', 'green', 'red', 'yellow', 'red']}
df = pd.DataFrame(data)
# 定义匹配模式
pattern = 'apple'
# 获取每行是否与匹配模式相符的布尔值
mask = df.apply(lambda x: pattern in x.values, axis=1)
# 根据布尔值筛选数据框的列
filtered_df = df.loc[mask]
print(filtered_df)
运行以上代码,输出结果如下:
col1 col2 col3
0 1 apple red
2 3 apple red
4 5 apple red
在这个示例中,我们创建了一个包含三列的数据框。然后,我们定义了匹配模式为 "apple"。接下来,我们使用 apply
方法在每一行中检查是否存在与匹配模式相符的值,并根据检查结果创建了一个布尔值的掩码(mask)。最后,我们使用该掩码来筛选数据框的列,并打印结果。在本例中,只有第一列与匹配模式相符,所以只有第一列的数据被保留在结果中。
下一篇:按行值拆分pandas数据帧列