<p>像这样的?你知道吗</p>
<pre><code>df['ColC'] = df.ColA + '>+' + df.ColB.str[0].str[0] + \
' ' + df.ColB.str[0].str[1] + ':' + \
df.ColB.str[0].str[2] + ',+' + \
df.ColB.str[1].str[0] + ' ' + \
df.ColB.str[1].str[1] + ':' + \
df.ColB.str[1].str[2]
</code></pre>
<p>输出:</p>
<pre><code> ColA ColB ColC
0 A [[a, b, c], [d, e, f]] A>+a b:c,+d e:f
1 B [[f, g, h], [i, j, k]] B>+f g:h,+i j:k
2 A [[l, m, n], [o, p, q]] A>+l m:n,+o p:q
</code></pre>
<h2>时间安排</h2>
<p>数据框=pd.concat公司([df]*333)</p>
<p>温氏方法</p>
<blockquote>
<p>%%timeit df[['t1','t2']]=df['ColB'].apply(pd.Series).applymap(lambda x
: ('{} {}:{}'.format(x[0],x[1],x[2]))) df.ColA+'>+'+df.t1+',+'+df.t2</p>
</blockquote>
<p><em>1圈,最佳3:363 ms/圈</em></p>
<p>米拉杜洛法</p>
<blockquote>
<p>%%timeit df.apply(lambda r:'{}>+{} {}:{},+{}
{}:{}'.format(*flatten(r)), axis=1)</p>
</blockquote>
<p><em>10个环路,最佳值为3:74.9ms/环路</em></p>
<p>斯科特伯顿法</p>
<blockquote>
<p>%%timeit df.ColA + '>+' + df.ColB.str[0].str[0] + \
' ' + df.ColB.str[0].str[1] + ':' + \
df.ColB.str[0].str[2] + ',+' + \
df.ColB.str[1].str[0] + ' ' + \
df.ColB.str[1].str[1] + ':' + \
df.ColB.str[1].str[2]</p>
</blockquote>
<p><em>100个回路,最佳3:12.4 ms/回路</em></p>