在 Pandas 中,你可能会遇到单元格包含多个值列表的数据帧。与其在单个单元格中存储多个值,不如扩展数据框,使列表中的每个项目占据自己的行。
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中文网其他相关文章!