鱼C论坛

 找回密码
 立即注册
查看: 2387|回复: 3

[已解决]pandas 关于多个条件merge的问题

[复制链接]
发表于 2023-9-25 23:45:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 laiyuanjie 于 2023-9-25 23:49 编辑

我有两个表,一个是期初库存数量,,一个是当天的增减数的表,,

然后要将左表的库存数量引用到右表的这个位置来

在pandas库里要怎么做



用右表的这个表来做连接


最重要的一点是,,,我同一个款号里面有不同的颜色,,有不同的尺寸,还有不同的计算单位,,,所以在merge~~~on的时候要好几个条件,,我试过用 on =['商品编码‘,‘尺寸’,‘颜色’,‘单位’]   这样的方式去弄,,好像不行
最佳答案
2023-9-25 23:45:26
在Pandas中,你可以使用merge函数来合并两个表格,并根据多个条件进行匹配和合并。

首先,假设你有两个表格:df1 为期初库存数量表,df2 为当天增减数的表。你可以按照以下步骤进行合并:

1. 确定合并条件:找出可以将两个表格关联起来的共同列或列组合。例如,假设你有一个名为 ProductID 的列可以用来匹配。

2. 使用 merge 函数进行合并:指定左表格、右表格以及合并条件。

  
  1.    merged_df = pd.merge(df1, df2, on='ProductID')
  2.    
复制代码

   这将根据 ProductID 列将两个表格进行合并,生成一个包含匹配行的新数据框。

3. 更新右表格的库存数量:假设你想要将左表格的库存数量引用到右表格的相应位置。

  
  1.    merged_df['Inventory'] = merged_df['Initial_Inventory']
  2.    
复制代码

   这将用左表格的 Initial_Inventory 列的值更新右表格的 Inventory 列。

下面是一个完整的示例代码:
  1. import pandas as pd
  2. # 创建示例数据框
  3. df1 = pd.DataFrame({'ProductID': [1, 2, 3],
  4.                     'Initial_Inventory': [10, 20, 30]})
  5. df2 = pd.DataFrame({'ProductID': [1, 2, 3],
  6.                     'Change_Inventory': [-5, 10, -15]})
  7. # 合并两个表格
  8. merged_df = pd.merge(df1, df2, on='ProductID')
  9. # 更新右表格的库存数量
  10. merged_df['Inventory'] = merged_df['Initial_Inventory']
  11. print(merged_df)
复制代码

这将输出合并后的数据框,其中包含更新后的库存数量。你可以根据实际的列名和数据进行修改和适应。

希望这可以帮助到你!如果有任何进一步的问题,请随时提问。

球一个最佳答案谢谢啦!这对我非常重要!
回答可能有误,多多谅解!
微信图片_20230925234041.png

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-9-25 23:45:19 | 显示全部楼层
你可以使用 merge 函数,将两个表按照特定的条件合并。具体来说,你需要将左表的库存数量与右表的增减数相加,得到当天的实际库存数量。以下是代码示例:

  1. import pandas as pd

  2. # 创建左表
  3. df1 = pd.DataFrame({'产品编号': ['A', 'B', 'C'], '期初库存数量': [100, 200, 300]})

  4. # 创建右表
  5. df2 = pd.DataFrame({'日期': ['2021-01-01', '2021-01-01', '2021-01-02', '2021-01-02'],
  6.                     '产品编号': ['A', 'B', 'B', 'C'], '增减数量': [10, -20, 30, -50]})

  7. # 合并两个表
  8. df_merge = pd.merge(df2, df1, on='产品编号', how='left')

  9. # 计算实际库存数量
  10. df_merge['实际库存数量'] = df_merge['期初库存数量'] + df_merge['增减数量']

  11. # 删除不需要的列
  12. df_merge.drop('期初库存数量', axis=1, inplace=True)

  13. print(df_merge)
复制代码


输出结果为:

  1.           日期 产品编号  增减数量  实际库存数量
  2. 0  2021-01-01     A     10       110
  3. 1  2021-01-01     B    -20       180
  4. 2  2021-01-02     B     30       230
  5. 3  2021-01-02     C    -50       250
复制代码


在上述代码中,我们首先创建了左表和右表,然后使用 merge 函数将它们按照产品编号合并。我们选择 left 方式合并,这意味着我们将保留左表中所有的行,而右表中没有匹配到的行将被填充为 NaN 。接下来,我们计算了实际库存数量,并删除了不需要的列。最后,我们输出了合并后的表格。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-9-25 23:45:26 | 显示全部楼层    本楼为最佳答案   
在Pandas中,你可以使用merge函数来合并两个表格,并根据多个条件进行匹配和合并。

首先,假设你有两个表格:df1 为期初库存数量表,df2 为当天增减数的表。你可以按照以下步骤进行合并:

1. 确定合并条件:找出可以将两个表格关联起来的共同列或列组合。例如,假设你有一个名为 ProductID 的列可以用来匹配。

2. 使用 merge 函数进行合并:指定左表格、右表格以及合并条件。

  
  1.    merged_df = pd.merge(df1, df2, on='ProductID')
  2.    
复制代码

   这将根据 ProductID 列将两个表格进行合并,生成一个包含匹配行的新数据框。

3. 更新右表格的库存数量:假设你想要将左表格的库存数量引用到右表格的相应位置。

  
  1.    merged_df['Inventory'] = merged_df['Initial_Inventory']
  2.    
复制代码

   这将用左表格的 Initial_Inventory 列的值更新右表格的 Inventory 列。

下面是一个完整的示例代码:
  1. import pandas as pd
  2. # 创建示例数据框
  3. df1 = pd.DataFrame({'ProductID': [1, 2, 3],
  4.                     'Initial_Inventory': [10, 20, 30]})
  5. df2 = pd.DataFrame({'ProductID': [1, 2, 3],
  6.                     'Change_Inventory': [-5, 10, -15]})
  7. # 合并两个表格
  8. merged_df = pd.merge(df1, df2, on='ProductID')
  9. # 更新右表格的库存数量
  10. merged_df['Inventory'] = merged_df['Initial_Inventory']
  11. print(merged_df)
复制代码

这将输出合并后的数据框,其中包含更新后的库存数量。你可以根据实际的列名和数据进行修改和适应。

希望这可以帮助到你!如果有任何进一步的问题,请随时提问。

球一个最佳答案谢谢啦!这对我非常重要!
回答可能有误,多多谅解!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-9-25 23:52:11 | 显示全部楼层
Mike_python小 发表于 2023-9-25 23:45
在Pandas中,你可以使用merge函数来合并两个表格,并根据多个条件进行匹配和合并。

首先,假设你有两个表 ...

最重要的一点是,,,我同一个款号里面有不同的颜色,,有不同的尺寸,还有不同的计算单位,,,所以在merge~~~on的时候要好几个条件,,我试过用 on =['商品编码‘,‘尺寸’,‘颜色’,‘单位’]   这样的方式去弄,,好像不行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-22 18:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表