gpt4 book ai didi

python - 如何将子项目与 Pandas 数据框中的父项目相关联?

转载 作者:行者123 更新时间:2023-12-05 07:23:53 25 4
gpt4 key购买 nike

我遇到了 python 和 pandas 数据框的一个小问题。我如何循环遍历该列并使用“类型”数据将子项(橙子、香蕉和鳄梨)与父项“水果”相关联,并将子项(汉堡、薯条)与父项“快餐”相关联?

+-----------+------+----------+-----------+
| Parent_ID | ID | Type | Name |
+-----------+------+----------+-----------+
| | 226 | Category | Fruit |
| | 2090 | Item | Orange |
| | 2091 | Item | Banana |
| | 2092 | Item | Avocados |
| | 209 | Category | Fast-Food |
| | 2097 | Item | Burger |
| | 2099 | Item | fries |
+-----------+------+----------+-----------+

我想要如下所示的数据框。

+-----------+------+----------+-----------+
| Parent_ID | ID | Type | Name |
+-----------+------+----------+-----------+
| | 226 | Category | Fruit |
| 226 | 2090 | Item | Orange |
| 226 | 2091 | Item | Banana |
| 226 | 2092 | Item | Avocados |
| | 209 | Category | Fast-Food |
| 209 | 2097 | Item | Burger |
| 209 | 2099 | Item | fries |
+-----------+------+----------+-----------+

最佳答案

您可以从检查 Type 列等于 Category 的位置开始,然后获取 bool 系列的 cumsum。然后将结果用到GroupBy ID 取第一个作为每组的Parent_ID:

g = df.Type.eq('Category').cumsum()
df = df.assign(Parent_ID=df.groupby(g).ID.transform('first'))
df['Parent_ID'] = df.Parent_ID.where(df.ID.ne(df.Parent_ID)).fillna('')

ID Type Name Parent_ID
0 226 Category Fruit
1 2090 Item Orange 226
2 2091 Item Banana 226
3 2092 Item Avocados 226
4 209 Category Fast-Food
5 2097 Item Burger 209
6 2099 Item fries 209

关于python - 如何将子项目与 Pandas 数据框中的父项目相关联?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55689548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com