【问题标题】:How do I remove rows which in part contain a string in a Python dataframe [duplicate]如何删除在 Python 数据框中部分包含字符串的行 [重复]
【发布时间】:2020-09-05 16:53:27
【问题描述】:

我使用 pandas 导入了一个 csv,现在我想删除包含某些通配符的行,它可能是 devtesting-dashboard - 这些是字段中较大的字符串。

我已经尝试了各种方法来为我的 minus_testing_dashboard 变量执行此操作,但它们都不起作用

import numpy as np
import pandas as pd

raw_data = pd.read_csv('No License Key.csv', delimiter = ',', keep_default_na=False, low_memory=False)

selected_raw_data = raw_data[['App Config', 'App Name', 'App UUID', 'Machine ID', 'Estimated Company']].reset_index()

print(selected_raw_data.head(25))

minus_testing_dashboard = selected_raw_data.apply(lambda row: row.astype(str).str.contains('testing-dashboard').any(), axis=1).reset_index()

unique_desktops = minus_testing_dashboard['Machine ID'].nunique()
print(unique_desktops)

【问题讨论】:

    标签: python pandas csv


    【解决方案1】:

    IIUC str.contains 将关键字加入按位 OR 字符串后。

    df = pd.DataFrame({'A' : ['dev_testing_123_456',
                             'just a test',
                             'testing-dashboard',
                             'keep me',
                             'and me']})
    
    pat = '|'.join(['testing-dashboard','dev'])
    #'testing-dashboard|dev'
    
    print(df[~df['A'].str.contains(pat)])
    
                 A
    1  just a test
    3      keep me
    4       and me
    

    【讨论】:

    • 您在哪里指定“A” - 您还可以指定表中的其他列吗?所以搜索会遍历多个列?
    • 您需要堆叠列,提供数据样本,然后我将编辑我的答案@Steve Wood
    猜你喜欢
    • 2016-07-16
    • 2019-12-02
    • 1970-01-01
    • 2021-10-13
    • 1970-01-01
    • 2022-11-07
    • 2019-02-17
    • 2016-08-07
    相关资源
    最近更新 更多