擅长:python、mysql、java
<p>您可以按条带删除<code>[]</code>,然后先按<code>,</code>或<code>;</code>拆分,然后使用您的解决方案:</p>
<pre><code>print (df.e2etrail.str.strip('[]').str.split('[;,]'))
dtype: object
0 [sitea, siteb, sitea, siteb, sitec, sited, sit...
Name: e2etrail, dtype: object
</code></pre>
<hr/>
<pre><code>f = lambda x : ','.join(sorted(set(x),key=x.index))
df['test'] = df.e2etrail.str.strip('[]').str.split('[;,]').map(f)
print (df)
cola. e2etrail \
0 1.0 [sitea,siteb,sitea,siteb;sitec,sited,sitec,sited]
test
0 sitea,siteb,sitec,sited
</code></pre>
<p>如果需要输出列表:</p>
<pre><code>f = lambda x : sorted(set(x),key=x.index)
df['test'] = df.e2etrail.str.strip('[]').str.split('[;,]').map(f)
print (df)
cola. e2etrail \
0 1.0 [sitea,siteb,sitea,siteb;sitec,sited,sitec,sited]
test
0 [sitea, siteb, sitec, sited]
</code></pre>