我有以下数据框:
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
考虑到我的初始数据帧实际上是一个非常大的数据帧,有数千行,执行此数据帧转换以重建数据集层次结构的最有效方法是什么(这里我只是给出了一个简短的示例来说明我想要实现的目标)
提前致谢 那就是
代码
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