如何使用Python数据帧检索项目的所有原始组件

如何使用Python数据帧检索项目的所有原始组件,python,pandas,dataframe,recursion,tree,Python,Pandas,Dataframe,Recursion,Tree,我正在尝试编写一个解决方案,当给定以下两个数据帧(items&components)时,它将通过item)返回所有raw\u组件的数据帧 当从项目转到组件时,使用项目作为键链接这两个数据帧。从组件到项目时,使用组件数据框中的子组件与项目数据框中的项目相关 items:此数据框保存包含子组件的所有项。一个项目也可以是另一个项目的子组件。这里不存在原始组件 items = pd.DataFrame({'item': ['a', 'b'], 'item_code'

我正在尝试编写一个解决方案,当给定以下两个数据帧(
items
&
components
)时,它将通过
item
)返回所有
raw\u组件的数据帧

当从
项目
转到
组件
时,使用
项目
作为键链接这两个数据帧。从
组件
项目
时,使用
组件
数据框中的
子组件
项目
数据框中的
项目
相关

items:此数据框保存包含子组件的所有项。一个项目也可以是另一个项目的子组件。这里不存在原始组件

items = pd.DataFrame({'item': ['a', 'b'],
                   'item_code': [1, 2]
                  })
items.set_index('item',inplace = True)
item\u代码
项目
a 1
b 2
组件:此数据框列出
items
数据框中每个项目的子组件。如果
子组件
不存在于
数据框中(作为
),则它是
预期结果
中的
原始组件

components = pd.DataFrame({'item_code': [1, 1, 1, 1, 2],
                   'sub_component': ['a1', 'a2', 'a3', 'b', 'b1'],
                    'quantity': [1, 2, 1, 1, 4]
                  })
components.set_index('item_code',inplace = True)
子组件数量
项目代码
1 a1 1
1 a2 2
1 a3 1
1 b 1
2 b1 4
下面创建的dataframe是基于当前数据集的预期输出

expected_result = pd.DataFrame({'item': ['a','a','a','a','b'],
                   'raw_component': ['a1','a2','a3','b1','b1'],
                    'quantity': [1, 2, 1, 4, 4]
                  })
expected_result.set_index('item',inplace = True)
raw\u组件数量
项目
a11
a a2 2
a31
a b1 4
b b1 4

我尝试过使用递归和循环,但一直无法找到解决方案。挑战在于一个项目可能有一个子组件,该子组件也有子组件,并且没有提供层数。

使用
。将剪贴板作为
预期结果。将结果粘贴到剪贴板(sep='\\s+',index=True)
而不是粘贴图像。我试图找出显示结果的最佳方式。谢谢你的把戏!使用
.to_clipboard
作为
预期结果。to_clipboard(sep='\\s+',index=True)
而不是粘贴图像。我正在尝试找出显示结果的最佳方式。谢谢你的把戏!