【问题标题】:how to force pandas .loc to return series如何强制 pandas .loc 返回系列
【发布时间】:2018-10-23 16:37:47
【问题描述】:

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

df = 
        CLASS
NAME    
John    Math
John    Science
Lisa    Music

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

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

【问题讨论】:

    标签: python pandas series pandas-loc type-coercion


    【解决方案1】:

    要强制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
    

    这将导致返回带有 1(或更多)行的 Series,无论如何。当列表为空时也有效,返回一个空列表:

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

    【讨论】:

      猜你喜欢
      • 2021-12-16
      • 2020-01-19
      • 2019-09-15
      • 2018-02-17
      • 2020-03-11
      • 2018-02-09
      • 1970-01-01
      • 1970-01-01
      • 2022-06-17
      相关资源
      最近更新 更多