【问题标题】:Create a hierarchical index from a .tsv file (pandas)从 .tsv 文件 (pandas) 创建层次索引
【发布时间】:2016-10-22 06:06:24
【问题描述】:

我有一个这种形状的数据框(不是实际的):

水果香蕉屋-1 15

水果香蕉屋-2 4

水果苹果屋-2 6

水果苹果屋-2 8

蔬菜西兰花屋 3 8

生菜馆-4 12

蔬菜辣椒屋 5 3

蔬菜玉米屋-4 4

调味橄榄油屋 6 2

调味醋屋-7 2

我想知道是否有一种方法可以在 Pandas 中创建一个具有以下两个级别的分层索引的数据框:食物类型、食物。然后为每个人分配一个位置和一个数量。我无法手动执行此操作,因为实际数据集有超过 60,000 行。我想到的一种方法是从 tsv 文件创建一个列表,然后将其用作索引,但我想还有一种更自动的方法。提前致谢!

【问题讨论】:

    标签: python csv pandas indexing dataframe


    【解决方案1】:

    试试这个:

    In [11]: df
    Out[11]:
            Type       Food      Loc  Num
    0      Fruit     Banana  House-1   15
    1      Fruit     Banana  House-2    4
    2      Fruit      Apple  House-2    6
    3      Fruit      Apple  House-2    8
    4  Vegetable   Broccoli  House-3    8
    5  Vegetable    Lettuce  House-4   12
    6  Vegetable    Peppers  House-5    3
    7  Vegetable       Corn  House-4    4
    8  Seasoning  Olive Oil  House-6    2
    9  Seasoning    Vinegar  House-7    2
    
    In [13]: df = df.set_index(['Type','Food'])
    
    In [14]: df
    Out[14]:
                             Loc  Num
    Type      Food
    Fruit     Banana     House-1   15
              Banana     House-2    4
              Apple      House-2    6
              Apple      House-2    8
    Vegetable Broccoli   House-3    8
              Lettuce    House-4   12
              Peppers    House-5    3
              Corn       House-4    4
    Seasoning Olive Oil  House-6    2
              Vinegar    House-7    2
    

    顺便说一句,您可以在读取 TSV/CSV 文件时“即时”执行此操作:

    df = pd.read_csv(filename, sep='\t', header=None,
                     columns=['Type','Food','Loc','Num'],
                     index_col=['Type','Food'])
    

    【讨论】:

      猜你喜欢
      • 2018-04-25
      • 1970-01-01
      • 2019-10-04
      • 2021-08-27
      • 2018-02-12
      • 2021-01-03
      • 2016-05-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多