【发布时间】:2021-02-10 19:34:32
【问题描述】:
我有这个示例数据框,常规数据框有大约 35 个不同的列,有更多的类别/子类别
id drink_bottle drink_can food_napkin food_wrapper location
1 5 5 2 6 mall
2 2 4 3 1 mall
3 7 2 0 1 mall
4 0 3 9 2 urban
5 3 1 4 4 urban
6 2 4 5 3 urban
7 2 1 4 3 urban
8 7 1 2 0 urban
9 0 2 3 9 urban
10 3 4 4 4 recreational
11 2 3 5 5 recreational
12 5 1 0 3 recreational
我想把它改成这个。
id category subcategory amount location
1 drink bottle 5 mall
1 drink can 5 mall
1 food napkin 2 mall
1 food wrapper 6 mall
2 drink bottle 2 mall
2 drink can 4 mall
2 food napkin 3 mall
2 food wrapper 1 mall
3 drink bottle 3 mall
3 drink can 4 mall
3 food napkin 5 mall
3 food wrapper 7 mall
4 drink bottle 1 urban
4 drink can 4 urban
4 food napkin 2 urban
4 food wrapper 1 urban
我尝试了不同的方法,例如转置函数和使用部分字符串来添加值。但我真的不知道,最好的方法是解决这样的问题。因为我不知道如何重新排列它,所以它也需要是 scalabe 以防添加新列。有没有人可以将我推向正确的方向?
d={'drink_bottle': {1: 5, 2: 2, 3: 7, 4: 0},
'drink_can': {1: 5, 2: 4, 3: 2, 4: 3},
'food_napkin': {1: 2, 2: 3, 3: 0, 4: 9},
'food_wrapper': {1: 6, 2: 1, 3: 1, 4: 2},
'location': {1: 'mall', 2: 'mall', 3: 'mall', 4: 'urban'},
'id': {1: 1, 2: 2, 3: 3, 4: 4}}
df = pd.DataFrame(data=d)
【问题讨论】: