<p>没有<code>pandas</code>,只使用标准python和<code>csv</code>模块,这里有一种方法。<code>data.csv</code>是“带产品行的csv”,<code>update.csv</code>是另一个。你知道吗</p>
<pre><code>#coding=utf-8
import csv
def GetCatCodes():
with open('data.csv') as csvfile:
reader = csv.DictReader(csvfile, delimiter=';')
return list(reader)
def SetFixPrices():
with open('update.csv') as csvfile:
reader = csv.DictReader(csvfile, delimiter=';')
return list(reader)
def ChangeToFinalCSV():
SetFixMinPrices = SetFixPrices()
CatCodes = GetCatCodes()
for cc in CatCodes:
for sfp in SetFixMinPrices:
if cc['CatCode'] == sfp['CATCODE']:
update_value = float(cc['price']) + float(sfp['MARGIN'])
cc['price'] = str(update_value)
return CatCodes
retailed = ChangeToFinalCSV()
with open('newdata.csv', 'w') as f:
fieldnames = ['SKU', 'price', 'availability', 'Time', 'Supplier', 'CatCode']
writer = csv.DictWriter(f, fieldnames=fieldnames)
writer.writeheader()
writer.writerows(retailed)
</code></pre>
<p><code>newdata.csv</code>现在包含:</p>
<pre><code>x1,10.08,0,1-4-2019,sup1,K1
x1,10.00,0,1-4-2019,sup1,K3
x1,10.00,0,1-4-2019,sup1,K2
</code></pre>