擅长:python、mysql、java
<p>@fsimonjetz的<a href="https://stackoverflow.com/a/68741295/1453822">answer</a>非常棒,如果你已经在这个项目中与熊猫合作。如果您没有这样做,那么仅将其用于此任务是一种巨大的过度使用,因为我们可以用简单的逻辑解析和转换数据</p>
<pre><code>import csv
from collections import defaultdict
output = defaultdict(dict)
with open('path/to/your.csv') as f:
reader = csv.DictReader(f, delimiter=';')
companies = reader.fieldnames[1:]
for line in reader:
country = line['country']
for company in companies:
output[company][country] = line[company]
# or output.setdefault(company, {})[country] = line[company]
# if you want 'output' to be a "normal" dict instead of defaultdict
print(dict(output)) # or just print(output) if you don't mind seeing OrderedDict
# repr
</code></pre>
<p>输出</p>
<pre><code>{'company1': {'finland': '30', 'sweden': '20', 'norway': '10'},
'company2': {'finland': '30', 'sweden': '30', 'norway': '20'},
'company3': {'finland': '40', 'sweden': '50', 'norway': '70'}}
</code></pre>