Сравнение URL-адреса из CSV не работает с Python Pandas

#python #pandas #dataframe #csv #url

#python #pandas #фрейм данных #csv #url

Вопрос:

Я пытаюсь сравнить определенные записи в csv с помощью python pandas. К сожалению, он не может обнаружить записи с точным URL. Для дальнейшего объяснения найдите приведенный ниже код

  def find_function_name(self,file_path,line):
        fn_data = pd.read_csv(constant.MAP_PARSER_FILE)
        print(fn_data.head())
        print(file_path)
        print(line)
        function_details=fn_data.loc[(fn_data['Filepath'] == 'C:UsersPATHTOFOLDERModelWireless.php')]
        print(function_details)
        sys.exit()
 

Структура CSV, как показано ниже

 Filepath    FunctionName    StartLine   EndLine
C:UsersPATHTOFOLDERModelWireless.php  getSampleThroughput 2174    2231
C:UsersPATHTOFOLDERModelWireless.php  getSampleThroughput 205 351
C:UsersPATHTOFOLDERModelWireless.php  getSampleThroughput 361 439
C:UsersPATHTOFOLDERModelWireless.php  getSampleThroughput 449 528
C:UsersPATHTOFOLDERModelWireless.php  getSampleThroughput 532 802
 

Могу ли я узнать, чего не хватает в моем коде для правильного сравнения.

Комментарии:

1. Вы сравниваете FunctionName столбец с путем вместо Filepath столбца.

2. @Hasnat Я изменил вопрос

Ответ №1:

Вы можете сравнить следующим образом. Я думаю, вы можете сравнить его со столбцом Filepath вместо functionName.

 function_details = fn_data[fn_data['Filepath'] == r'C:UsersPATHTOFOLDERModelWireless.php']
    
 

Комментарии:

1. Я изменил код, и затем он не показывает никаких записей, возвращая пустой фрейм данных.

2. Я думаю, что проблема связана с обратной косой чертой в url

3. Получена эта ошибка SyntaxError: (ошибка unicode) кодек ‘unicodeescape’ не может декодировать байты в позиции 2-3: усеченный UXXXXXXXX escape

4. Попробуйте использовать r'C:UsersPATHTOFOLDERModelWireless.php' или 'C:\Users\PATH\TO\FOLDER\Model\Wireless.php'

5. Мне нужно отфильтровать то же самое с большим количеством условий function_details=fn_data.loc[(fn_data[‘Filepath’] == r'{}’.format(file_path)) amp; (fn_data[‘StartLine’].ge(2174))]