首页 >后端开发 >Python教程 >Pandas\' .explode()` 方法如何将基于列表的列转换为单独的行?

Pandas\' .explode()` 方法如何将基于列表的列转换为单独的行?

Linda Hamilton
Linda Hamilton原创
2024-11-29 20:25:11965浏览

How Can Pandas' `.explode()` Method Transform List-Based Columns into Separate Rows?

利用 Pandas 的 .explode() 方法将列表解包为行

在 Pandas 中,当您想要每个列表都包含列时,处理包含列表列的 DataFrame 可能会很有挑战性列表元素表示为单独的行。这就是 .explode() 方法发挥作用的地方。

Pandas ≥ 0.25

对于 Pandas 0.25 及更高版本,游戏规则改变者是 .explode( ) 方法。它允许您将类似列表的列分解为单独的行,从而将其从长形式转换为宽形式。

import pandas as pd

# Sample DataFrame
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)]
})

# Explode using .explode()
exploded_df = df.explode('samples')

# Reset index to be monotonically increasing (optional)
exploded_df = exploded_df.reset_index(drop=True)

print(exploded_df)

# Output:
#    subject  trial_num  sample
# 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
# 7        2          1   -0.08
# 8        2          1   -4.22
# 9        2          1   -2.05
# 10       2          2    0.72
# 11       2          2    0.79
# 12       2          2    0.53
# 13       2          3    0.4
# 14       2          3   -0.32
# 15       2          3   -0.13

请注意,.explode() 一次对单个列进行操作。对于包含混合类型(例如列表和标量)的列,.explode() 表现得明智并保留空列表和 NaN。

以上是Pandas\' .explode()` 方法如何将基于列表的列转换为单独的行?的详细内容。更多信息请关注PHP中文网其他相关文章!

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