回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一个大的数据集,如下所示</p>
<pre class="lang-py prettyprint-override"><code>party,cp,qualifier,amount
ABC,DEF,GOOGLE_2,100
ABC,DEF,GOOGLE_2,200
GHI,JKL,FACEBOOK_1,500
GHI,JKL,FACEBOOK_1,-600
</code></pre>
<p>我想输出:</p>
<pre class="lang-py prettyprint-override"><code>ABC,DEF,GOOGLE,300
GHI,JKL,FACEBOOK,-100
</code></pre>
<p>以下是我迄今为止的python代码:</p>
<pre class="lang-py prettyprint-override"><code>headers = ["valuation_date","party_group_name","type","party_name","cp_group_name","cp_name","qualifier","amount"]
data = {}
with open(t1file,'rb') as f:
reader = csv.reader(f)
headers = reader.next()
for row in reader:
party = row[headers.index('party')]
cp = row[headers.index('cp')]
qualifier = row[headers.index('qualifier')]
amount = row[headers.index('amount')]
if row[headers.index('type')] == "Equity":
new_qualifier = qualifier.split("_")[0]
if party in data.keys():
if cp in data.keys():
if new_qualifier in data.keys():
data[party][cp][new_qualifier] += float(amount)
else:
data[party][cp][qualifier][amount] = data[party][cp][new_qualifier][amount]
else:
data[cp] = cp
else:
data[party] = party
</code></pre>
<p>运行上述代码时,出现以下错误:</p>
<pre class="lang-py prettyprint-override"><code> data[party][cp][qualifier][amount] = data[party][cp][new_qualifier][amount]
TypeError: string indices must be integers, not str
</code></pre>
<p>非常生疏与Python道歉,如果它是明显的讣告,但任何见解,我做错了什么?
谢谢!你知道吗</p>