为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Python 转换 DataFrame

使用 Python 转换 DataFrame

蝴蝶刀刀 2023-02-15 16:36:15
首先,对标题感到抱歉,但我不知道如何用不到一句话来表达它......我有一个看起来像这样的 DataFrame:   24  36  48A   1   2   1B   2   2   2C   2   1   3我想将其转换为:  Num Let Val0  24  A  11  24  B  23  24  C  24  36  A  2...n  48  C  3这个想法是使用原始 df 索引的值创建一个新列('Let'),并使用原始 df 列的名称创建另一个列('Num')。'Val' 列应该是原始表中的对应值(类似于您在 Excel 中可能有一个表的方式)。新表中行的顺序不相关。我用 pivot_table() 做了一些尝试,但没有成功。知道如何去做吗?提前致谢!
查看完整描述

2 回答

?
眼眸繁星

TA贡献1873条经验 获得超9个赞

你要找的是函数melt()

对于您的具体示例,它看起来像这样:

import numpy as np

import pandas as pd


df = pd.DataFrame(np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]), columns=['24', '36', '48'], index=['A', 'B', 'C'])


df

#    24  36  48

# A   1   2   3

# B   4   5   6

# C   7   8   9


df.reset_index().melt(id_vars=["index"])

#   index variable  value

# 0     A       24      1

# 1     B       24      4

# 2     C       24      7

# 3     A       36      2

# 4     B       36      5

# 5     C       36      8

# 6     A       48      3

# 7     B       48      6

# 8     C       48      9


查看完整回答
反对 回复 2023-02-15
?
GCT1015

TA贡献1827条经验 获得超4个赞

import numpy as np


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


print(f'Original Array:\n{arr1}')


arr1_transpose = arr1.transpose()


print(f'Transposed Array:\n{arr1_transpose}')


查看完整回答
反对 回复 2023-02-15
  • 2 回答
  • 0 关注
  • 215 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号