Parse Pandas Вернуться как список - PullRequest
1 голос
/ 04 февраля 2020

Я запускаю следующий код:

df = pd.read_excel(excel_file, columns = ['DeviceNumber','DeviceAddress','DeviceCity','DeviceState','StoreNumber','StoreName','DeviceConnect','Keys'])
df.index.name = 'ID'

def srch_knums(knum_search):
    get_knums = df.loc[df['DeviceNumber'] == knum_search]
    return get_knums

test = srch_knums(int(13))
print(test)

Вывод выглядит следующим образом:

DeviceNumber DeviceAddress DeviceCity DeviceState StoreNumber StoreName DeviceConnect Keys ID
12     13 135 Sesame Street  Imaginary   AZ         410        Verizon     Here        On Sit

e

кстати, это выглядит симпатичнее в терминале ... ха-ха

Что я хочу сделать, это пройти тест значений и использовать его различные аспекты, то есть распечатать его в определенных c частях создаваемого мною gui. Вопрос в том, каков синтаксис для доступа к различным значениям списка теста? TBH Я бы предпочел изменить метки, когда я представляю его в gui, и хочу знать, как это сделать, например, взять test [0], который должен быть значением для номера устройства (13), и быть возможность назначить его переменной. IE, создайте метку с надписью «номер киоска», а затем напечатайте переменную, назначенную тесту [0], рядом с ней, et c. как я предпочел бы отформатировать его сам, чем странные распечатки из возвращения.

Ответы [ 2 ]

0 голосов
/ 04 февраля 2020

Измените строку:

get_knums = df.loc[df['DeviceNumber'] == knum_search]

на

get_knums = df[df['DeviceNumber'] == knum_search]

вам не нужно использовать lo c.

0 голосов
/ 04 февраля 2020

Если вы хотите вернуть скалярные значения, сначала сопоставьте по тестовому столбцу col1 и выведите столбец col2, затем необходимо loc, также добавляется next с iter для возвращаемого значения по умолчанию, если нет совпадений:

def srch_knums(col1, knum_search, col2):
    return next(iter(df.loc[df[col1] == knum_search, col2]), 'no match')

test = srch_knums('DeviceNumber', int(13), 'StoreNumber')
print (test)
410

Если хотите список:

def srch_knums(col1, knum_search, col2):
    return df.loc[df[col1] == knum_search, col2].tolist()

test = srch_knums('DeviceNumber', int(13), 'StoreNumber')
print (test)
[410]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...