Python跨数据框匹配项目

问题描述 投票:1回答:1

我发现很多问题,人们希望匹配列表中的项目,但我的问题略有不同,造成一些麻烦。我在Windows 7机器上使用Python 3.6。

假装我是一家杂货连锁店的首席执行官,每周都会得到一份excel文件,其中包含每件商品的库存量。其中有2列,第一列是商店的城市和商品的名称,第二列是商品的数量。每个项目在每个项目之前有4个空格,其中城市没有空格,但两者都在同一列中。

|New York   |NAN|
|   Apples  |10 |
|   Oranges |20 |
|   Pears   |30 |
|Los Angeles|NAN|
|   Apples  |20 |
|   Oranges |40 |
|Dallas     |NAN|
|   Apples  |30 |
|   Oranges |60 |
|   Pears   |90 |

这需要每周一次上传到服务器以进行库存控制。我有一个SKU的交叉引用,它与大熊猫数据框中的每个商店和项目有关。

这是艰难的部分。我现在想要将其与我的SKU相匹配,以便我可以为每个商店正确获取每个sku的库存。我的库存数据框是:

|City|Item     |#|
|NY  | Apples  |?|
|NY  | Oranges |?|
|NY  | Pears   |?|
|LA  | Apples  |?|

我的想法是首先看一下纽约的名单,一旦我找到纽约,我会逐行迭代直到找到我的水果。问题如图所示,洛杉矶没有梨,如果纽约用完了线就会丢失,而不仅仅是库存为0。所以for循环将迭代直到它到达达拉斯并使用其库存而不是返回纽约没有梨。简而言之,我如何确保for循环不会超过我想要获得的城市并返回不同的城市库存?

python pandas string-matching
1个回答
1
投票

不是直接将数据加载到pandas中,而是使用xlrd解析Excel文件,使用适当的city | product | count条目重新格式化文件并将其摄取到数据帧中。然后,您应该能够使用标准pandas.DataFrame.merge将此列表与SKU交叉引用

© www.soinside.com 2019 - 2024. All rights reserved.