我是 pandas 新手,希望从多个具有多个数据帧的 Excel 工作表中重做以下操作。
这是高级结构:
Master_df
主控_UID |组件_ID_1 |数量_1 | ... |组件_ID_8 |数量_8
Component_type_1_df
组件 ID | ... |重量
Component_type_2_df
组件 ID | ... |重量
Master_UID['Component_ID_1'] 包含来自 Component_type_1_df 和 Component_type_2_df 的“Component_ID”
现在,在 Master_df 中,我想根据 2 个 Component_type_X_df 中的权重创建Weight_1列。
乘以 Master_df['Quantity_1']。
最佳答案
Master_df['Weight_1'] = Master_df['Component_ID'].map(Component_type_1_df.set_index('Component_ID')['weight']) * Master_df['Quantity']
如果没有数据集可供使用,我无法保证这会按预期工作,但 map 功能应该可以帮助您到达您想去的地方。
如果您不想将计算的权重列附加到 master df 的末尾,您可以执行以下操作:
Master_df.insert({desired_index_position},'Weight_1', Master_df['Component_ID'].map(Component_type_1_df.set_index('Component_ID')['weight']) * Master_df['Quantity')
我实际上最近发布了一个与此类似的问题。我发布了一个数据集供您使用,以便您可以学习该功能。
关于python - 跨多个数据帧计算新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46504392/