首页 > 解决方案 > 尝试旋转熊猫数据框时不断丢失我的索引

问题描述

我为每个家庭分配了四个报价,并且我有一个数据框,每个数据框都有一行(即家庭出现在四行中,每个报价一个)。

HSHLD_NO, VAR_OFFER_NUM, var_offer_rank
10004, 12, 1
10004, 30, 2
10004, 23, 3
10004, 4, 4
10005, 14, 1
10005, 12, 2
10005, 15, 3
10005, 4, 4

在此处输入图像描述

我正在尝试创建一个新的数据框,其中每个家庭都有一行,每个报价编号都有一列。我正在努力

final_trans=df.pivot_table(index=['HSHLD_NO'], values='VAR_OFFER_NUM', columns=['var_offer_rank']) 

但这是我得到的:
1 2 3 4
12 30 23 4
14 12 15 4
在此处输入图像描述

我丢失了左侧的家庭号码,不知道如何保留它。

标签: pythonpandasindexingpivot-tabledatabricks

解决方案


您只需要 final_trans['HSHLD_NO'] = final_trans.index

代码:

import pandas as pd
import numpy as np

df = pd.read_csv('data.csv', delimiter='\s+')
print(df)
final_trans=df.pivot_table(index=['HSHLD_NO'], values='VAR_OFFER_NUM', columns=['var_offer_rank']) 
final_trans['HSHLD_NO'] = final_trans.index
print(final_trans)

输出:

   HSHLD_NO  VAR_OFFER_NUM  var_offer_rank
0     10004             12               1
1     10004             30               2
2     10004             23               3
3     10004              4               4
4     10005             14               1
5     10005             12               2
6     10005             15               3
7     10005              4               4
var_offer_rank   1   2   3  4  HSHLD_NO
HSHLD_NO
10004           12  30  23  4     10004
10005           14  12  15  4     10005

推荐阅读