将嵌套列表分解为 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中文网其他相关文章!