问题:
我们如何转换 DataFrame包含列表的单元格为该列表中的每个值分成单独的行?
示例:
考虑以下 DataFrame:
name | opponent | nearest_neighbors |
---|---|---|
A.J. Price | 76ers | ['Zach LaVine', 'Jeremy Lin', 'Nate Robinson', 'Isaia'] |
我们的目标是“爆炸”nearest_neighbors列,为列表中的每个值创建一个新行。
答案:
在pandas版本0.25及更高版本中,explode( ) 方法使此操作变得简单:
import pandas as pd df = (pd.DataFrame({'name': ['A.J. Price'] * 3, 'opponent': ['76ers', 'blazers', 'bobcats'], 'nearest_neighbors': [['Zach LaVine', 'Jeremy Lin', 'Nate Robinson', 'Isaia']] * 3}) .set_index(['name', 'opponent'])) df.explode('nearest_neighbors')
输出:
name | opponent | nearest_neighbors |
---|---|---|
A.J. Price | 76ers | Zach LaVine |
A.J. Price | 76ers | Jeremy Lin |
A.J. Price | 76ers | Nate Robinson |
A.J. Price | 76ers | Isaia |
A.J. Price | blazers | Zach LaVine |
A.J. Price | blazers | Jeremy Lin |
A.J. Price | blazers | Nate Robinson |
A.J. Price | blazers | Isaia |
A.J. Price | bobcats | Zach LaVine |
A.J. Price | bobcats | Jeremy Lin |
A.J. Price | bobcats | Nate Robinson |
A.J. Price | bobcats | Isaia |
explode() 方法有效地展开最近的邻居列中的每个列表,为每个值创建一个新行。
以上是如何将类似列表的列解压缩为 DataFrame 中的单独行?的详细内容。更多信息请关注PHP中文网其他相关文章!