使用其他数据帧更新数据帧

2024-04-27 04:54:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用第二个csv文件中的数据修改csv文件。两个文件都有sku列,但它们并不完全匹配。两个文件都有一个price列。我需要更新第一个文件与新的价格从第二个文件中的SKU匹配。感觉很简单,但我的大脑今天缺了一个齿轮。你知道吗

到目前为止,我已经:

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']
}

(请原谅语法错误的伪代码)


Tags: 文件csvpandasreadpriceoldlistassign
2条回答

您可以像这样迭代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()

合并“SKU”上的数据帧。沿着这些思路应该可以做到:

oldDf = pandas.read_csv('oldData.csv')
newDf = pandas.read_csv('newData.csv')

result = pd.merge(oldDf, newDf, on='SKU')

相关问题 更多 >