python - 尝试旋转熊猫数据框时不断丢失我的索引
问题描述
我为每个家庭分配了四个报价,并且我有一个数据框,每个数据框都有一行(即家庭出现在四行中,每个报价一个)。
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
我丢失了左侧的家庭号码,不知道如何保留它。
解决方案
您只需要 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
推荐阅读
- android - Android Timer/CountDownTimer 在 onResume(
- javascript - 如何从网络获取文本文件内容并将其制成表格
- android - onCharacteristicChanged 在 ble 上写入后不会被调用
- c# - 有没有办法结合 LINQ 和异步
- scala - Scala 在尝试创建超过 255 列的 RDD 时出现 java 异常
- c# - 使用字符串插值进行字符串连接
- java - 在编辑器中显示 IntelliJ-idea 中的编译错误
- angular - ng2-toastr 不能在 Angular 4 应用程序中工作
- python - 在每组中重新采样 pandas df
- java - 相交的记录列表