python - 跨多个数据帧计算新列

标签 python pandas dataframe view calculation

我是 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')

我实际上最近发布了一个与此类似的问题。我发布了一个数据集供您使用,以便您可以学习该功能。

PANDAS vlookup against series with common index using map

关于python - 跨多个数据帧计算新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46504392/

相关文章:

python - logging.handlers.SysLogHandler 省略日志消息中的前导空格

python - 如何找到 pandas 数据框中列中出现频率最高的单词

java - Spark - 用列除以整数?

python - 在 pandas DataFrame 中添加元素很困难

python - 将每一列除以其他列并根据结果创建一个新的数据框

python - Django 1.4 : return HTML in function

python - 如何在scrapy中使用项目字段对xml进行排序?

python - 如何使用 BeautifulSoup 从期刊版本列表中抓取 pdf 网址?

python - 用字符串填充空列表元素python

python - 在python中匹配两个 Pandas 数据框的列名