我有一个这种形状的数据框架(不是实际的):
水果香蕉之家-1 15
香蕉果馆-2 4
水果苹果屋-2 6
水果苹果屋-2 8
蔬菜花椰菜馆-3 8
蔬菜生菜馆-4 12
蔬菜辣椒馆-5 3
蔬菜玉米房-4 4
调味品橄榄油屋-6 2
调味醋屋-7 2
我想知道是否有一种方法可以在Pandas中创建一个具有这两个层次的层次索引的数据框架:食物类型、食物类型。然后给每个人分配一个地点和一个金额。我不能手动完成这个操作,因为实际的数据集有超过6万行。我想到的一种方法是从tsv文件中创建一个列表,然后使用它作为索引,但我认为还有一种更自动的方法。提前感谢!
发布于 2016-06-20 21:27:54
试试这个:
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'])
https://stackoverflow.com/questions/37931760
复制相似问题