Как мне искать, если значение находится внутри фрейма данных

1

У меня есть два CSV файла с именем master_registry.csv и master_reference.csv. Используя эти CSV, я создал несколько новых фреймов данных, называемых "df" и "df2". Объединив эти "df" и "df2" кадры данных, я создал новый фрейм данных под названием "new_df". Проблема в том, что я хочу найти значение внутри этого кадра данных "new_df". Но когда я пытаюсь получить результат, он дает мне ошибку.

Это код

    # reading csv from the directory
    df = pd.read_csv('application/master_registry.csv')
    df2 = pd.read_csv('application/master_reference.csv')

    # filtering some selected columns form the csv
    df = df.filter(items=['Master_ID', 'Provider First Name', 'Provider Middle Name', 'Provider Last Name (Legal Name)', 'Provider Credential Text', 'Provider Gender Code','Provider License Number State Code_1',
                    'Provider Business Practice Location Address City Name'])

    # creating new data frame with "full name" column
    df['Full_Name'] = df[['Provider First Name', 'Provider Last Name (Legal Name)']].apply(lambda x: ' '.join(x), axis=1)

    new_df = df.set_index('Master_ID').join(df2.set_index('Master_ID'))

    # selecting rows according to the external values
    main = new_df[(new_df['Master_ID']==master_id)]
    print(main.values.tolist())

Когда я пробую код выше, он дает мне эту ошибку.

C:\Users\ChampsoftWK26\Envs\jerich_core\lib\site-packages\pandas\core\ops.py: 1164: FutureWarning: не удалось выполнить сравнение элементов; вместо этого возвращает скаляр, но в будущем будет выполняться элементное сравнение result = method (y) [2018-06-15 14: 36: 07,148] ОШИБКА в приложении: Исключение/поиск/руководство/результаты/by_npi [POST] Traceback (большинство последний вызов последнего): Файл "C:\Users\ChampsoftWK26\Envs\jerich_core\lib\site-packages\flask\app.py", строка 2292, в ответ wsgi_app = self.full_dispatch_request() Файл "C:\Users\ChampsoftWK26\Envs\jerich_core\lib\site-packages\flask\app.py ", строка 1815, в full_dispatch_request rv = self.handle_user_exception (e) Файл" C:\Users\ChampsoftWK26\Envs\jerich_core\lib\site-packages\flask\app.py ", строка 1718, в handle_user_exception reraise (exc_type, exc_value, tb) Файл" C:\Users\ChampsoftWK26\Envs\jerich_core\lib\site-packages\flask_compat.py ", строка 35, в ререйзе raise value Файл "C:\Users\ChampsoftWK26\Envs\jerich_core\lib\site-packages\flask\app.py", строка 1813, в full_dispatch_request rv = self.dispatch_request() Файл "C:\Users\ChampsoftWK26\Envs\jerich_core\Lib\сайта-пакеты\колба\app.py", строка 1799, в dispatch_request return self.view_functionsrule.endpoint Файл "C:\Users\ChampsoftWK26\Desktop\Jericho_v0.0.7\application\routes.py", строка 41, в search_manual_results_by_npi info = hub.process_search_by_npi (npi) Файл "C:\Users\ChampsoftWK26\Desktop\Jericho_v0.0.7\application\hub.py ", строка 152, в файле process_search_by_npi print (new_df ['Client_Reference_ID'] == npi) Файл" C:\Users\ChampsoftWK26\Envs\jerich_core\lib\site-packages\pandas\core\ops.py ", строка 1253, в обертке res = na_op (значения, другие) Файл" C:\Users\ChampsoftWK26\Envs\jerich_core\lib\site-packages\pandas\core\ops.py ", строка 1166, в na_op raise TypeError (" недопустимое сравнение типов ") TypeError: недопустимое сравнение типов 127.0.0.1 - - [15/Jun/2018 14:36:07]" POST/search/manual/results/by_npi HTTP/1.1 "500 -

Новый__подобный

             Provider First Name         ...         Client_Reference_ID
Master_ID                             ...                            
1                     WILLIAM         ...                  1588667638
2                     RICHARD         ...                  1114920261
3                   FRANCISCO         ...                  1861495814
4                        ERIC         ...                  1306849336
5                     RICHARD         ...                  1326041476
6                      GHAITH         ...                  1770586828
7                      TREVOR         ...                  1124021274
Теги:
pandas
csv

2 ответа

1
Лучший ответ

Вам нужно получить строку по индексу, попробуйте следующее:

 main = new_df.loc[[master_id]]

Например

new_df.loc[[2]]

Возвращает

             Provider First Name     Client_Reference_ID
Master_ID                                                      
2                 RICHARD                 1114920261
  • 0
    @lsma это тоже сработало
0

Кажется, что Master_ID - ваш индекс. В этом случае это должно работать:

'your id' in new_df.index

Что дает true или false если индекс существует.

Или преобразовать его в столбец, а затем продолжить с кодом:

new_df['Master_ID'] = df.index
main = new_df[(new_df['Master_ID']==master_id)]
  • 0
    Я согласен, но он не объяснил, что вывод, так что я просто догадываюсь. Точно так же я предполагаю, что это индекс
  • 0
    Вы уверены, что master_id - это столбец, а не индекс?
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню