从一列数据帧重建层次结构

问题描述 投票:0回答:1

我有以下数据框:

   Name       Qty

0  Fruits

1  Apple      100

2  Mango      200

3  Vegetables 

4  spinach     2

我想使用“水果”和“蔬菜”类别重建数据集的层次结构,“数量”列中的值是空字符串。所需的输出是:

   Category     Constituents    Qty

0  Fruit        Apple           100

1  Fruit        Mango           200

2  Vegetables   Spinach          2

考虑到我的初始数据帧实际上是一个非常大的数据帧,有数千行,执行此数据帧转换以重建数据集层次结构的最有效方法是什么(这里我只是给出了一个简短的示例来说明我想要实现的目标)

提前致谢 那就是

python pandas dataframe hierarchical-data
1个回答
0
投票

代码

cond = df['Qty'].eq('')
out = (df
       .assign(Category=df['Name'].where(cond).ffill())
       .loc[~cond, ['Category', 'Name', 'Qty']]
       .reset_index(drop=True)
)

     Category     Name    Qty
0      Fruits    Apple  100.0
1      Fruits    Mango  200.0
2  Vegetables  spinach    2.0
© www.soinside.com 2019 - 2024. All rights reserved.