如何强制 pandas .loc 到 return 系列

how to force pandas .loc to return series

我有一个带有 NAME 索引的 Pandas DataFrame 和一个名为 CLASS:

的列
df = 
        CLASS
NAME    
John    Math
John    Science
Lisa    Music

现在,如果我提取 df.loc['John', 'CLASS'],它 returns 一个 Series,但是如果我提取 df.loc['Lisa', 'CLASS'],它 returns一个 str

有没有办法让我强制返回值为 Series(即 ['Music', ])?之后我需要遍历返回的对象,我不想在 John 的情况下(需要)经历 MathScience,但在 Lisa 的情况下(不需要)经历 M, u, s, i, c

要强制 loc 到 return 和 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 无论如何都要 return 编辑 1(或更多)行。当列表为空时也有效,returning 一个空列表:

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