大熊猫中是否有与SQL中的%类似的工具?

时间:2019-11-01 12:41:54

标签: python pandas substitution

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

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

screen from jupyter showing data strucutre

2 个答案:

答案 0 :(得分:1)

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

此代码返回一个数据帧,其中列column_name包含“ -JP-”

答案 1 :(得分:1)

如果要在所有列中查找符号,可以按照以下步骤进行操作。让我在名为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

希望它能对您有所帮助。