pandas 中是否有与 SQL 中的 % 类似的工具?

Is there any similar tool in pandas to % in SQL?

我有一个数据集,我想在其中查找包含 -JP- 的所有对象。 在每一列中都有包含此类数据的行:DE-JP-20438082/2066/A2@qwinfhcaer.cu/68849.

尝试了 .iloc and .isin 种方法,如下所示。

filtered_data = df[df.column_name.str.contains('-JP-')]

此代码 returns 具有列 column_name 的数据框包含“-JP-”

如果你想在所有的列中查找标志,你可以像下面那样进行。让我在名为 df.

的示例数据集上向您展示它
df = pd.DataFrame(
    [
        {'var_1': '23', 'var_2': '-JP-', 'var_3':'23'},
        {'var_1': '24', 'var_2': '26', 'var_3':'3'},
        {'var_1': 'ua', 'var_2': 'C', 'var_3':'ABDC'},
        {'var_1': '26', 'var_2': '28', 'var_3':'Aaaa-JP-AAA'},
    ]
)

print(df)
  var_1 var_2        var_3
0    23  -JP-           23
1    24    26            3
2    ua     C         ABDC
3    26    28  Aaaa-JP-AAA

现在,我定义函数并将其应用于我的数据框。我创建了一个列,您可以在其中看到数据框行的任何列中是否有所选符号。

def is_sign_anywhere(row, sign, cols):
    if any([sign in row[col] for col in cols]):
        return True
    return False

df['is_sign_in_row'] = df.apply(lambda row: is_sign_anywhere(row, '-JP-', df.columns), axis=1)
print(df)
  var_1 var_2        var_3  is_sign_in_row
0    23  -JP-           23            True
1    24    26            3           False
2    ua     C         ABDC           False
3    26    28  Aaaa-JP-AAA            True

希望对你有所帮助