【发布时间】:2021-08-10 07:32:39
【问题描述】:
我有多个数据框要比较。我的问题是产品 ID。一个是这样设置的:
- 000-000-000-000
- 对比
- 000-000-000
(总)
我看过这里、reddit、YouTube,甚至深入研究了兔子洞,尝试了 .join、.append 以及其他一些我以前从未见过,甚至还没有理解的方法。有没有办法(或者甚至更好的一些我可以阅读的文档来学习这一点)从主 excel 表中提取产品 ID,将其与应该匹配的 ID 进行比较。然后我会更喜欢在所有工作表上制作就地 ID。这样我就可以使用这些 ID 作为索引并将 ID 与行数据进行并排比较?每个 ID 有大约 113 个值进行比较。那是 113 列,但如果有意义的话,对于每一行
补充说明: 突出显示的黄色 ID 是“唯一的”,我不会更改它们,而是将它们写入列表或其他东西,并在找到时使用 if 语句忽略它们。
编辑: 所以我写了这段代码,这几乎是我需要做的。 它去掉了我应用于所有 ID 的“-”。只需要制作一个唯一的 ID 列表,以便在去掉零时跳过
dfSS["Product ID"] = dfSS["Product ID"].str.replace("-", "")
那么这只会列出最多 9 位的数字,唯一 ID 除外
dfSS["Product ID"] = dfSS["Product ID"]str[:9]
一旦我让它 100% 工作,将在下面添加完整的代码
我现在正试图弄清楚如何说类似的话
lst =[1,2,3,4,5]
if dfSS["Product ID"] not in lst:
dfSS["Product ID"] = dfSS["Product ID"].str.replace("-", "").str[:9]
此代码不起作用,但每天我越来越接近能够比较这些相似但不同的数据帧。 lst 只是我根本不想过滤的列表中的 000-000-000 产品 ID 的示例。但保留在数据框中
【问题讨论】:
标签: python excel pandas dataframe matching