【问题标题】:Grouping and Multiindexing a pandas dataframe对熊猫数据框进行分组和多索引
【发布时间】:2018-02-07 01:08:51
【问题描述】:

假设我有一个如下的数据框

In [6]: df.head()
Out[6]: 
     regiment company      name  preTestScore  postTestScore
0  Nighthawks     1st    Miller             4             25
1  Nighthawks     1st  Jacobson            24             94
2  Nighthawks     2nd       Ali            31             57
3  Nighthawks     2nd    Milner             2             62
4    Dragoons     1st     Cooze             3             70

我有一本字典如下:

army = {'Majors' : 'Nighthawks', 'Captains' : 'Dragoons'}

我想要它并且应该只有 ["army","company"] 形状的多索引。

我将如何进行?

【问题讨论】:

  • 我相信这是骗人的,所以只能评论 - 使用df = df.set_index(["regiment","company"])
  • 检查set_index
  • @jezrael 是的,谢谢,我编辑了我的问题,这就是我想问的

标签: python-3.x pandas dataframe multi-index pandas-groupby


【解决方案1】:

如果我理解正确:

您可以使用map 在字典中查找值(使用字典理解来交换键/值对,因为它们是向后的):

army = {'Majors': 'Nighthawks', 'Captains': 'Dragoons'}

df.assign(army=df.regiment.map({k:v for v, k in army.items()})).set_index(['army', 'company'], drop=True)
                    regiment      name  preTestScore  postTestScore
army     company                                                   
Majors   1st      Nighthawks    Miller             4             25
         1st      Nighthawks  Jacobson            24             94
         2nd      Nighthawks       Ali            31             57
         2nd      Nighthawks    Milner             2             62
Captains 1st        Dragoons     Cooze             3             70

【讨论】:

    猜你喜欢
    • 2021-11-02
    • 2017-01-12
    • 2013-11-16
    • 2018-01-08
    • 1970-01-01
    • 2017-10-12
    • 2022-11-23
    • 2021-03-24
    • 2013-12-15
    相关资源
    最近更新 更多