【发布时间】:2016-10-17 17:06:58
【问题描述】:
生成测试数据的代码
import pandas as pd
dftest = pd.DataFrame({'Amt': {0: 60, 1: 35.0, 2: 30.0, 3: np.nan, 4: 25},
'Year': {0: 2012.0, 1: 2012.0, 2: 2012.0, 3: 2013.0, 4: 2013.0},
'Name': {0: 'A', 1: 'A', 2: 'C', 3: 'A', 4: 'B'}})
给予
Amt Name Year
0 60 A 2012.0
1 35.0 A 2012.0
2 30.0 C 2012.0
3 NaN A 2013.0
4 25 B 2013.0
列 Amt 最多有 2 个值对应于组 ['Name', 'Year']。我想旋转/转置以使输出具有以下形式
Name Year Amt1 Amt2
0 A 2012 35 60
2 C 2012 30 NaN
3 A 2013 NaN NaN
4 B 2013 25 NaN
我尝试过使用 pivot、unstack、pivot_table
我真正想做的是确保每个['Name', 'Year'] 有两个Amt 值(NA 可以),我可以通过堆叠所需的输出来实现
【问题讨论】:
-
我猜你希望第一行的 Amt1 为 60,Amt2 为 35。你想让它们先排序吗?
-
我希望它们按升序排序,这很简单,我想你现在可以忽略它
标签: python pandas pivot pivot-table transpose