首页 >后端开发 >Python教程 >如何在 Pandas DataFrame 中分解列表?

如何在 Pandas DataFrame 中分解列表?

Linda Hamilton
Linda Hamilton原创
2024-12-03 11:45:12301浏览

How to Explode Lists Within Pandas DataFrames?

Pandas 中的爆炸列表

问题陈述

在 Pandas 中,你可能会遇到单元格包含多个值列表的数据帧。与其在单个单元格中存储多个值,不如扩展数据框,使列表中的每个项目占据自己的行。

Pandas 的解决方案 >= 0.25 h3>

Pandas 0.25 及以上版本引入Series 和 DataFrame 的 .explode() 方法。此方法有效地将列表元素分成不同的行。

要分解列,只需使用以下语法:

df.explode('column_name')

例如,让我们考虑以下数据框:

import pandas as pd
import numpy as np

df = pd.DataFrame(
    {'trial_num': [1, 2, 3, 1, 2, 3],
     'subject': [1, 1, 1, 2, 2, 2],
     'samples': [list(np.random.randn(3).round(2)) for i in range(6)]
    }
)

要分解“样本”列,我们将使用:

df_exploded = df.explode('samples')

这将产生所需的输出:

   subject  trial_num  samples
0        1          1    0.57
1        1          1   -0.83
2        1          1    1.44
3        1          2   -0.01
4        1          2    1.13
5        1          2    0.36
6        1          3    1.18
# etc.

混合列注释

.explode()方法可以处理列表的混合列和标量,以及空列表和 NaN。不过,需要注意的是它一次只能爆炸一列

以上是如何在 Pandas DataFrame 中分解列表?的详细内容。更多信息请关注PHP中文网其他相关文章!

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