<p>还有一种方法:</p>
<pre><code>df.explode('column').squeeze().map(dd).groupby(level=0).agg(list)
</code></pre>
<p>输出:</p>
<pre><code>0 [1, 2, 3, 4]
1 [5, 6, 7]
Name: column, dtype: object
</code></pre>
<p>备选案文2:</p>
<pre><code>pd.Series([list(map(dd.get, l)) for l in df['column']])
</code></pre>
<p>输出:</p>
<pre><code>0 [1, 2, 3, 4]
1 [5, 6, 7]
dtype: object
</code></pre>
<h2>时间:</h2>
<h3>应用lambda映射到列表:</h3>
<pre><code>%timeit df.column.apply(lambda x: pd.Series(x).map(dd).tolist())
</code></pre>
<blockquote>
<p>1.15 ms ± 39.7 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)</p>
</blockquote>
<h3>分解挤压贴图分组方式:</h3>
<pre><code>%timeit df.explode('column').squeeze().map(dd).groupby(level=0).agg(list)
</code></pre>
<blockquote>
<p>2.56 ms ± 78.7 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)</p>
</blockquote>
<h3>pd.具有列表理解和映射的系列构造函数:</h3>
<pre><code>%timeit pd.Series([list(map(dd.get, l)) for l in df['column']])
</code></pre>
<blockquote>
<p>88.7 µs ± 4.58 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)</p>
</blockquote>
<h3>列分解映射</h3>
<pre><code>%timeit df.column.explode().map(dd).groupby(level=0).agg(list)
</code></pre>
<blockquote>
<p>1.21 ms ± 28 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)</p>
</blockquote>
<h3>列应用lambda列表映射</h3>
<pre><code>%timeit df.column.apply(lambda x: list(map(dd.get, x)))
</code></pre>
<blockquote>
<p>152 µs ± 4.12 µs per loop (mean ± std. dev. of 7 runs, 10000 loops
each)</p>
</blockquote>