根据多列中包含的单词删除行

时间:2020-05-20 12:09:14

标签: python loops csv dataframe delete-row

我仍然无法在数据上获得正确的输出。我正在查看从.csv导入的数据框-我想遍历3列并删除“包含”以下任何列表的行-['testing-dashboard','cdn.openfin.co','localhost', '_qa','-qa', 'uat.', 'uat-', 'staging.','test','developer','_uat_','-UAT']

当我使用以下脚本并通过手动删除excel中的数据进行比较时,我没有得到相同的数字。知道为什么它不能正常工作吗?

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()

remove_from_data =  '|'.join(['testing-dashboard','cdn.openfin.co','localhost', '_qa','-qa', 'uat.', 'uat-', 'staging.','test','developer','_uat_','-UAT'])
#print(remove_from_data)
data_output = selected_raw_data

for item in ['App Config', 'App Name', 'App UUID']:
    data_output = data_output[~data_output[item].str.contains(remove_from_data, case= False)]
    data_output.reset_index()

#print(len(data_output))

unique_desktops = data_output['Machine ID'].nunique()

print(unique_desktops)

1 个答案:

答案 0 :(得分:0)

我已经看到了结果之间差异的原因。即使我指定了'dev',该列表也将删除任何包含'dev'的行(请注意第二个示例中dev之前的空格。有没有解决的办法?