python - 将列表的数据框 reshape 为另一个数据框

标签 python pandas numpy dataframe pandas-groupby

我有一个名称和列表的数据框,如下所示:

| Name | value |
|:-----|------:|
| A    |[1,4,7]|
| A    |[9,2,5]|
| A    |[6,9,3]|
| A    |[1,4,7]|
| A    |[9,2,5]|
| B    |[6,9,3]|
| B    |[1,4,7]|
| B    |[9,2,5]|
| B    |[6,9,3]|
| B    |[1,4,7]|

我想将此数据框 reshape 为另一个数据框,因为所有名称都会有 3 个这样的列表:

| Name |   value   |
|:-----|----------:|
| A    |[1,9,6,1,9]|
| A    |[4,2,9,4,2]|
| A    |[7,5,3,7,5]|
| B    |[6,1,9,6,1]|
| B    |[9,4,2,9,4]|
| B    |[3,7,5,3,7]|

有没有更简单的方法通过使用 pandas 来做到这一点?

最佳答案

使用groupby+pd.Series+melt

df2 = df.groupby('Name').apply(lambda s: pd.Series([s['value'].str[k].agg(list) for k 
in range(3)])).T.melt()

数据框看起来像这样:

   Name         value
0   A       [1, 9, 6, 1, 9]
1   A       [4, 2, 9, 4, 2]
2   A       [7, 5, 3, 7, 5]
3   B       [6, 1, 9, 6, 1]
4   B       [9, 4, 2, 9, 4]
5   B       [3, 7, 5, 3, 7]

关于python - 将列表的数据框 reshape 为另一个数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53283340/

相关文章:

python-3.x - plotly 有办法将 x 轴上的日期转换为一周中的某一天吗?

python - 如何将库编译添加到 numpy.distutils.core?

Python Numpy 对行进行排序

python - 没有多索引的 Pandas groupby 列

python范围问题

javascript - 任何人都可以指导我使用 js 或 python 组合可视化吗?

python - 如何在 Torch 张量中交换两行?

python - Pandas 如何设置日期作为索引,这是一个好主意吗?

python - pandas 两个数据框,某种合并

python - 缺少 "from typing import List"- 脚本错误,但函数中没有