【问题标题】:Combining two Pandas series indexes into one将两个 Pandas 系列索引合二为一
【发布时间】:2021-05-30 08:30:00
【问题描述】:

所以我有以下系列:

small car        285
midsize car      138
small SUV        108
large car         88
standard SUV      86
pickup            78
station wagon     34
minivan            5

我想将 'small SUV''standard SUV' 与它们的总和组合成一个名为 'SUV' 的索引,如下所示:

small car        285
midsize car      138
SUV              194
large car         88
pickup            78
station wagon     34
minivan            5

【问题讨论】:

    标签: python pandas data-science data-analysis series


    【解决方案1】:

    您可以使用 str.containsnp.where 分配新值 SUV ,然后在 level=0 上计算总和

    c = s.index.str.contains("SUV") #s is the variable name of the series here
    s.index = np.where(c,"SUV",s.index)
    s.sum(level=0)
    

    small car        285
    midsize car      138
    SUV              194
    large car         88
    pickup            78
    station wagon     34
    minivan            5
    Name: 1, dtype: int64
    

    【讨论】:

    • 这就像魔术一样!但是你能解释一下 sum(level=0) 部分吗?
    • @YoussefAlaaEtman 你可以在这里解释为s.groupby(s.index).sum()
    • 我现在可以重新订购该系列,使 SUV 高于中型车吗?
    • @YoussefAlaaEtman 你有固定的索引列表吗?如果没有,是否有任何逻辑或只是一个边缘案例,您想将 SUV 推到中型车之上?中型车一直存在吗?几个问题:)
    猜你喜欢
    • 1970-01-01
    • 2019-05-31
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 2017-09-02
    • 2013-07-10
    • 1970-01-01
    相关资源
    最近更新 更多