首页 > 后端开发 > Python教程 > 如何有效地解除 Pandas DataFrame 中多个列表列的嵌套?

如何有效地解除 Pandas DataFrame 中多个列表列的嵌套?

Susan Sarandon
发布: 2024-11-17 16:01:02
原创
398 人浏览过

How to Efficiently Unnest Multiple List Columns in Pandas DataFrames?

在 Pandas DataFrame 中有效取消嵌套多个列表列

在大型 Pandas DataFrame 中取消嵌套(也称为爆炸)多个列表列可能是一项计算密集型任务,尤其是当数据集规模很大。为了应对这一挑战,我们探索了两种适合不同 Pandas 版本的有效方法。

Pandas >= 1.3

对于 Pandas 1.3 及更高版本,DataFrame.explode 方法提供了一种简单的方法同时爆炸多个列。此方法要求所选列中的所有值都具有相同大小的列表。只需将列名称传递给explode方法,如下所示:

df.explode(['B', 'C', 'D', 'E']).reset_index(drop=True)
登录后复制

Pandas >= 0.25

对于较旧的Pandas版本,我们可以在每列上使用Series.explode。我们首先将不应该分解的列设置为索引,然后在操作后重置索引。

df.set_index(['A']).apply(pd.Series.explode).reset_index()
登录后复制

性能注意事项

两种方法都提供了高效的性能,如下所示大型数据集上的计时:

%timeit df2.explode(['B', 'C', 'D', 'E']).reset_index(drop=True)
%timeit df2.set_index(['A']).apply(pd.Series.explode).reset_index()

# Pandas >= 1.3 (fastest)
2.59 ms ± 112 µs per loop

# Pandas >= 0.25
1.27 ms ± 239 µs per loop
登录后复制

通过利用这些有效的方法,我们可以有效地取消 Pandas 中多个列表列的嵌套任何大小的数据帧,实现无缝数据分析和操作。

以上是如何有效地解除 Pandas DataFrame 中多个列表列的嵌套?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板