我正在尝试使用第二个csv文件中的数据修改csv文件。这两个文件都有一个sku列,但它们并不完全匹配。这两个文件也都有一个价格栏。我需要用skus匹配的第二个文件用新价格更新第一个文件。感觉很简单,但是今天我的大脑却缺少齿轮。
到目前为止,我有:
oldDf = pandas.read_csv('oldData.csv')
newDf = pandas.read_csv('newData.csv')
oldDf = oldDf.assign(newPrice = oldDf['LIST PRICE'])
oldDf['newPrice'] = newDf['LIST PRICE']
oldDf = oldDf.assign(sku2 = oldDf['SKU'])
oldDf['sku2'] = newDf['SKU']
print(oldDf)
oldDf.to_csv('something.csv')
除了添加新列并向我显示事物未排列之外,什么也没做。
我需要类似的东西:
if(old['sku'] = new['sku']){
old['list price'] = new['list price']
}
(请原谅经过严格语法处理的伪代码)
答案 0 :(得分:0)
将数据框合并到“ SKU”上。遵循以下原则应该可以:
oldDf = pandas.read_csv('oldData.csv')
newDf = pandas.read_csv('newData.csv')
result = pd.merge(oldDf, newDf, on='SKU')
答案 1 :(得分:0)
您可以像这样遍历old
:
for index, row in old.copy().iterrows():
if old['sku'] == new['sku']:
old.loc[index, 'list price'] = new.loc[index, 'list price']
编辑:也许我们不应该更新迭代的df,但它应该可以工作。
如果无法解决,可以添加copy()