как заставить панд .loc вернуть серию - PullRequest
0 голосов
/ 14 мая 2018

У меня есть панды DataFrame с индексом NAME и один из столбцов с именем CLASS:

df = 
        CLASS
NAME    
John    Math
John    Science
Lisa    Music

Теперь, если я извлекаю df.loc['John', 'CLASS'], он возвращает Series, но если я извлекаю df.loc['Lisa', 'CLASS'], он возвращает str.

Есть ли способ для меня заставить возвращаемое значение равным Series (т.е. ['Music', ])? Мне нужно повторить этот возвращенный объект сразу после этого, и я не хочу проходить через Math, Science в случае Джона (желательно), но M, u, s, i, c в случае Лизы (не желательно).

1 Ответ

0 голосов
/ 14 мая 2018

Чтобы заставить loc возвращать Series, оберните ваши значения индекса внутри литерала списка.

df.loc[['John'], 'CLASS']

NAME
John       Math
John    Science
Name: CLASS, dtype: object

df.loc[['Lisa'], 'CLASS']

NAME
Lisa    Music
Name: CLASS, dtype: object

Это приводит к тому, что Series с 1 (или более) строками будет возвращено независимо. Также работает, когда список пуст, возвращая пустой список:

df.loc[[], 'CLASS']
Series([], Name: CLASS, dtype: object)
...