Pandas如何把多列的数据转换成行

问题遇到的现象和发生背景

有一个表格, 计算一个国家的生产总值, 字段名称是国家, 然后多个年分别是多个列, 如1960, 1961, .... 2000等

img

, 我想使用pandas该成,年号用行来表示,变成:

img


应该怎么弄过?请来帮个忙

问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

df = pd.read_excel(file_path)

columns = df.columns.values

# 需要转置的那部分 DF
row_n = df.shape[0] -1
col_n = df.shape[1] - 4

ret = []  # 大列表来存储所有的

# 外层水平向右1列, 内层垂直向下遍历移多行
for i in range(col_n):
    for j in range(row_n):
        # 索引取值 iloc[行索引,列索引] 即可
        lst = [
            
            # 先取前四列, j+1 是为了跳过第 2 行
            df.iloc[j+1, 0], df.iloc[j+1, 1],
            df.iloc[j+1, 2], df.iloc[j+1, 3],
            
            # 再取当前列的, 前两行, 和 对应的值 (i,j) 再来3个字段
            
            columns[i+4], # 当前的列名, columns 是列字段列表
            df.iloc[0, i+4],  # 第一行,当前列的那个值, 即字段下面那个
            df.iloc[j+1, i+4] # j 是不断往下走, 边走边取值
        ]
        
        # 每一次取值, 则作为新数据的一行
        ret.append(lst)
        
# 最后再将这个新的二维数据变为 DataFrame, cols 自定义, 存 Excel 即可
      

我给个思路吧,因为你的描述我也看不懂。配了图之后更懵。
1、分别令df1=df.iloc[:,0:2]和df2=df.iloc[:,2:]
2、转置df2
3、再拼接

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632