gpt4 book ai didi

python - 从 csv 读取项目并更新另一个 csv 中的相同项目

转载 作者:行者123 更新时间:2023-12-01 08:20:19 30 4
gpt4 key购买 nike

我正在研究一种从 input.csv 读取数据的方法,并更新stock output.csv 中的专栏基于产品的id

这些是我现在正在执行的步骤:

1.input.csv 读取产品信息进入input_data = [] ,这将返回 OrderedDict 列表。

input_data目前看起来像这样:

[OrderedDict([('id', '1'), ('name', 'a'), ('stock', '33')]),
OrderedDict([('id', '2'), ('name', 'b'), ('stock', '66')]), OrderedDict([('id', '3'), ('name', 'c'), ('stock', '99')])]

2.output.csv 读取当前产品信息进入output_data = [] ,其架构与 input_data 相同

3. 迭代input_data并更新stock output_data 中的专栏基于 input_data 的库存信息。 最好的方法是什么?

-> 一个重要的提及是 input_data input_data中可能存在一些ID但不存在于output_data。我想更新股票 idinput_data 相同和output_data ,和"new"id s 很可能会写入新的 csv。

我正在考虑类似的事情(这不是真正的代码):

for p in input_data:
# check if p['id'] exists in the list of output_data IDs (I might have to create a list of IDs in output_data for this as well, in order to check it against input_data IDs
# if p['id'] exists in output_data, write the Stock to the corresponding product in output_data
# else, append p to another_csv

我知道这看起来很困惑,我要求的是一种逻辑方法来完成这个任务,而不浪费太多的计算时间。相关文件可能有 100,000 行长,因此性能和速度将成为一个问题。

如果我的数据来自input_dataoutput_datalistOrderedDict ,检查 id 的最佳方法是什么?在input_data并写下stock到完全相同的产品idoutput_data

最佳答案

虽然 Python 可能不是您的最佳选择,但我不会使用 OrderDict 列表来完成此任务。这只是因为尝试更改 output_data 中的某些内容需要 O(n) 复杂度,这将简单地在 O(n**2) 中转换您的脚本。我会将这两个文件保存在 dicts 中(如果您关心顺序,则保存为 OrderedDicts),如下所示(并将整个事情的复杂性降低到 O(n)):

input_data = {
'1': ['a', '33'],
'2': ['b', '66'],
'3': ['c', '99']
}
output_data = {
'1': ['a', '31'],
'3': ['c', '95']
}

# iterate through all keys in input_data and update output_data
# if a key does not exist in output_data, create it in a different dict
new_data = {}
for key in input_data:
if key not in output_data:
new_data[key] = input_data[key]
# for optimisation's sake you could append data into the new file here
# and not save into a new dict
else:
output_data[key][1] = input_data[key][1]
# for optimisation's sake you could append data into a new output file here
# and rename/move the new output file into the old output file after the script finishes

关于python - 从 csv 读取项目并更新另一个 csv 中的相同项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54691417/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com