<p>这是使用inbox<a href="https://docs.python.org/2/library/itertools.html" rel="nofollow noreferrer">itertools</a>的方法,您不需要安装任何额外的包。那么这就是如何用<strong>pythonistway</strong>和<strong>字典和列表理解来写它。你知道吗</p>
<p>逐步方法:</p>
<pre><code>#reading all file at once
import csv
with open('EGLOINDOORCSV.csv') as csvfile:
l=[r for r in csv.reader(csvfile, delimiter=r',')][1:] #skip header
#itertools requires sorted data. Sorting by second field.
key=lambda x: x[1]
l = sorted( l, key = key)
#grouping to an aux dictionary
from itertools import groupby
d={ k: "///".join( x[0] for x in g) for k,g in groupby( l, key) }
#updating third column from aux dictionary
for x in l:
x[2]=d[x[1]]
</code></pre>
<p>等等!你知道吗</p>
<pre><code>#this is the content of l, ready to go back to a new csv
[
['ExOne', 'GroupOne', 'ExOne///ExTwo///ExThree'],
['ExTwo', 'GroupOne', 'ExOne///ExTwo///ExThree'],
['ExThree', 'GroupOne', 'ExOne///ExTwo///ExThree'],
['ExSix', 'GroupThree', 'ExSix'],
['ExFour', 'GroupTwo', 'ExFour///ExFive'],
['ExFive', 'GroupTwo', 'ExFour///ExFive'],
]
</code></pre>
<p><strong>免责声明</strong>:<em>这是一个普通的解决方案,都在盒子里,但是请记住,<a href="https://pandas.pydata.org/" rel="nofollow noreferrer">pandas</a>是您处理数据的朋友,如果您需要管理大量数据,请记住安装它并转移到pandas解决方案。</em></p>
<p><strong>原始数据</p>
<pre><code>$cat EGLOINDOORCSV.csv
Martial,Serial,Related
ExOne,GroupOne,
ExTwo,GroupOne,
ExThree,GroupOne,
ExFour,GroupTwo,
ExFive,GroupTwo,
ExSix,GroupThree,
</code></pre>