首页  >  文章  >  后端开发  >  如何将 Pandas 数据框中的嵌套列表分解为单独的行?

如何将 Pandas 数据框中的嵌套列表分解为单独的行?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-12 03:10:02474浏览

How to Explode Nested Lists into Individual Rows in a Pandas Dataframe?

将嵌套列表分解为 Pandas 数据框中的单独行

在使用 pandas 进行数据操作的领域中,经常需要重构数据作为嵌套列表存储到各个行中。考虑一个数据帧,其中“nearest_neighbors”列包含值列表。目标是“爆炸”这些列表,为列表中的每个值创建单独的行。

Pandas 0.25 使用explode() 方法简化列表爆炸

对于 pandas在 0.25 及更高版本中,通过引入explode() 方法,显着简化了在列中展开列表的操作。为了演示其功能,让我们重新创建示例数据框:

import pandas as pd

# Original DataFrame
df = pd.DataFrame({'name': ['A.J. Price'] * 3, 
                    'opponent': ['76ers', 'blazers', 'bobcats'], 
                    'nearest_neighbors': [['Zach LaVine', 'Jeremy Lin', 'Nate Robinson', 'Isaia']] * 3})

# Set the index for easier reference
df = df.set_index(['name', 'opponent'])

爆炸嵌套列表

使用explode()方法,我们可以拆分“nearest_neighbors”列按其列表元素,为每个元素创建单独的行value:

# Explode the list-like column
df_exploded = df.explode('nearest_neighbors')

爆炸后的输出

print(df_exploded)
                    nearest_neighbors
name       opponent                  
A.J. Price 76ers          Zach LaVine
           76ers           Jeremy Lin
           76ers        Nate Robinson
           76ers                Isaia
           blazers        Zach LaVine
           blazers         Jeremy Lin
           blazers      Nate Robinson
           blazers              Isaia
           bobcats        Zach LaVine
           bobcats         Jeremy Lin
           bobcats      Nate Robinson
           bobcats              Isaia

如您所见,“nearest_neighbors”列中列表中的每个值现在都是表示为其相应对手索引中的单独行。

其他列表扩展的方法

对于 0.25 之前的 pandas 版本,还有其他方法来扩展列中的列表。这些方法需要应用、lambda 和列表理解等操作的组合。然而,随着explode()方法的引入,这些更复杂的方法就不再需要了。

以上是如何将 Pandas 数据框中的嵌套列表分解为单独的行?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn