如何使用 pandas 或 pandas 中的 upsert 函数根据最新的 df 内容更新行值

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

我有多个文件,其中包含 12 周的销售数据,我每个月都会收到它们。我将循环遍历该文件夹并将它们附加到一个 df 中。由于每月文件包含过去 12 周的数据,因此存在一些重叠。

示例:

File 1 (sales_mar2022.csv) contains Jan 2022 to Mar 2022
File 2 (sales_apr2022.csv) contains Feb 2022 to Apr 2022
File 3 (sales_jun2022.csv) contains Mar 2022 to Jun 2022 and continue. 

该文件包含类似

的列
Date       | Product ID | Brand   | Sales     | Volume 
01/01/2022 | 1232       | Brand X | 22332.234 | 23424

由于数据回溯,最新文件始终包含最新值。 我想使用 pandas 执行类似于 SQL upsert 函数 的操作。

每个文件的索引不一样,所以pandas更新功能不能很好地工作。

我尝试将所有文件附加到一个组合的 df 中,并在日期和产品 ID 上使用 drop_duplicates,但无法知道从最新更新的文件中保留哪一行。

合并后的 df 包含大约 1000 万行,因此追加所有行并删除重复项可能也效率不高。

感谢任何建议。 谢谢!

python pandas dataframe data-cleaning
1个回答
0
投票

将日期设置为索引,然后使用

update

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