从.tsv文件创建层次索引(pandas)

2024-06-01 08:51:51 发布

您现在位置:Python中文网/ 问答频道 /正文

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

水果香蕉屋-1 15

水果香蕉屋-2 4

水果苹果屋-2 6

水果苹果屋-28

蔬菜花椰菜屋-38

蔬菜莴苣屋-4 12

蔬菜辣椒屋-5 3

蔬菜玉米屋-4

调味橄榄油屋-6 2

调味醋屋-7 2

我想知道是否有一种方法可以在大熊猫中创建一个数据框架,其中包含两个层次的层次索引:食物类型,食物。然后给每个人分配一个位置和数量。我无法手动执行此操作,因为实际数据集有超过60000行。我想到的一种方法是从tsv文件创建一个列表,然后将其用作索引,但我认为有一种更自动化的方法。提前谢谢!你知道吗


Tags: 数据方法苹果食物形状大熊猫香蕉莴苣
1条回答
网友
1楼 · 发布于 2024-06-01 08:51:51

试试这个:

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'])

相关问题 更多 >