Использование Pandas для определения, отсутствуют ли значения из одного файла CSV в другом файле CSV - PullRequest
0 голосов
/ 05 декабря 2018

Я нахожусь в процессе создания сценария Python, который определяет, есть ли значения из столбца в file_1, которых нет в столбце из file_2.Если есть значения из столбца в file_1, которых нет в столбце из file_2, я бы хотел, чтобы они были напечатаны в выходных данных.

В настоящее время я загружаю значения в фрейм данных, используя Pandas, а затем перебираю значения, используя цикл while, однако, кажется, что цикл не перебирает значения, как предполагалось.Есть идеи?

import pandas as pd

dataframe_server_permissions = pd.read_csv("server_permissions.csv")
dataframe_database_permissions = pd.read_csv("database_permissions.csv") 

number_of_values = len(dataframe_server_permissions)

i = 0  

while i < number_of_values:

if dataframe_server_permissions['Permissions'][i] in dataframe_database_permissions['Rights']:      
        print("The permission on the server #" + dataframe_server_permissions['Permissions'][i] + "# exists in the database")
    elif dataframe_server_permissions['Permissions'][i] not in dataframe_database_permissions['Rights']: 
        print("The permission on the server #" + dataframe_server_permissions['Permissions'][1] + "# DOES NOT exist in the database #")
i+=1    

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Вы можете использовать метод isin, который может создать NaN строк, которые можно отбросить:

dataframe_server_permissions[~dataframe_database_permissions.isin(dataframe_server_permissions)].dropna(how='all')
0 голосов
/ 05 декабря 2018

Вы можете использовать функцию .isin () без зацикливания

compare=dataframe_database_permissions['Rights'].tolist()

dataframe_server_permissions['flag'] = 
dataframe_server_permissions['Permissions'].isin(compare).astype(int)

#now you can check for values which are not in rights by filtering using flag
print (dataframe_server_permissions[dataframe_server_permissions['flag']==0])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...