将2D numpy数组转换为rowcolumnvalue pandas DataFram

2024-04-25 22:34:29 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一个2D numpy数组,如下所示:

arr = np.array([[1, 2], [3, 4], [5, 6]])
# array([[1, 2],
#        [3, 4],
#        [5, 6]])

如何将其转换为“long”结构,每个值有一条记录,并与行和列索引相关联?在这种情况下,它看起来像:

^{pr2}$

melt只分配列标识符,不分配行:

pd.DataFrame(arr).melt()
#   variable    value
# 0        0        1
# 1        0        3
# 2        0        5
# 3        1        2
# 4        1        4
# 5        1        6

有没有办法附加行标识符?在


Tags: numpydataframenp记录情况数组标识符结构
2条回答

index传递给idvar:

pd.DataFrame(arr).reset_index().melt('index')
#    index variable  value
# 0      0        0      1
# 1      1        0      3
# 2      2        0      5
# 3      0        1      2
# 4      1        1      4
# 5      2        1      6

您可以重命名:

^{pr2}$

如果是列,melt可以使用索引:

arrdf = pd.DataFrame(arr)
arrdf['row'] = arrdf.index
arrdf.melt(id_vars='row', var_name='column')

#    row    column  value
# 0    0         0      1
# 1    1         0      3
# 2    2         0      5
# 3    0         1      2
# 4    1         1      4
# 5    2         1      6

相关问题 更多 >