Pandas dataframe: самый простой способ найти строку и выбрать элемент из этой строки - PullRequest
0 голосов
/ 07 октября 2018

Как я могу получить значение столбца из строки, если эта строка была найдена с использованием другого значения из другого столбца?Например:

row = df.loc[df['Name'] == 'john']

и теперь я хотел бы получить его письмо с чем-то вроде этого row['email']

Ответы [ 3 ]

0 голосов
/ 07 октября 2018

Вы также можете использовать df.get_value, если у вас есть синтаксис

:

DataFrame.get_value(index, col, takeable=False)

Пример

df.get_value(1, 'email')

Здесь один - индекс строки

или df.at[]

df.at[1, 'email']
0 голосов
/ 07 октября 2018

У вас есть несколько вариантов.Обратите внимание, что ниже не включена обработка ошибок.Предполагается, что данное имя существует.

pd.DataFrame.loc + pd.Series.values

Это позволяет получить доступ к базовому массиву NumPy и извлечь первый элемент:

df.loc[df['Name'] == 'john', 'email'].values[0]

pd.DataFrame.at

Установите индекс на Name, затем используйте at.Предполагается, что ваши имена уникальны, иначе скалярный доступ таким образом может не иметь смысла.

df.set_index('Name').at['john', 'email']

Если вы делаете это часто, я рекомендую хранить df.set_index('Name'), чтобы избежать дорогостоящих повторных операций.

pd.Series.loc

Аналогично первому решению, но с использованием pd.Series методов:

df['email'].loc[df['Name'].eq('john').index[0]]
0 голосов
/ 07 октября 2018

df.loc - индексатор строк и столбцов.Так что вы можете просто сделать

df.loc[df['Name'] == 'john', 'email']
...