熊猫使用其他数据框更新数据框

时间:2019-01-22 16:38:49

标签: python pandas csv numpy

我正在尝试使用第二个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']
}

(请原谅经过严格语法处理的伪代码)

2 个答案:

答案 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()