我有一个带有DataFrame
索引的Pandas 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
但在Lisa的情况下M, u, s, i, c
(不需要)。
答案 0 :(得分:3)
要强制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)