我在试着处理一些数据库。这是数据库的图片
代码:
canastas= pd.concat([cba,cbt])
canastas.index = np.arange(12)
canastas = canastas.stack()
Aiio Mes GSA Pampeana Noroeste Noreste Cuyo Patagonia Canasta
2016 7 1666.48 1660.19 1458.24 1496.21 1494.04 1713.67 CBA
2016 8 1675.05 1662.99 1459.38 1501.91 1496.09 1723.86 CBA
2016 9 1711.22 1705.31 1498.62 1540.68 1536.29 1767.89 CBA
2016 10 1739.34 1731.84 1516.82 1559.51 1559.00 1797.44 CBA
2016 11 1762.65 1753.27 1532.67 1573.18 1577.67 1819.64 CBA
2016 12 1766.62 1754.08 1526.86 1571.59 1574.22 1822.96 CBA
2016 7 4032.88 4017.66 3281.04 3396.40 3854.62 4712.59 CBT
2016 8 4036.87 4007.81 3269.01 3394.32 3844.95 4723.38 CBT
2016 9 4089.82 4075.69 3326.94 3451.12 3917.54 4790.98 CBT
2016 10 4191.81 4173.73 3397.68 3524.49 4006.63 4924.99 CBT
2016 11 4247.99 4225.38 3417.85 3539.66 4038.84 4967.62 CBT
2016 12 4257.55 4227.33 3420.17 3551.79 4045.75 4994.91 CBT
我需要像这样的数据库
我使用的是.stack
和.pivot_table
函数,但它不起作用。熊猫有什么功能或者你推荐什么?
发布于 2020-03-15 16:48:09
下面是另一种使用堆栈的解决方案,基本上它们的执行情况相似,请注意输出的顺序。
s = df.set_index(['Aiio','Mes','Canasta']).stack()
s.name = 'Valor'
df = s.reset_index().rename(columns={"level_3":"Region"})
df['Trimestre'] = df['Mes'].sub(1) // 3 + 1
df['Periodo'] = df['Aiio'] + df['Trimestre'] / 10
df
Aiio Mes Canasta Region Valor Trimestre Periodo
0 2016 7 CBA GSA 1666.48 3 2016.3
1 2016 7 CBA Pampeana 1660.19 3 2016.3
2 2016 7 CBA Noroeste 1458.24 3 2016.3
3 2016 7 CBA Noreste 1496.21 3 2016.3
4 2016 7 CBA Cuyo 1494.04 3 2016.3
... ... ... ... ... ... ... ...
67 2016 12 CBT Pampeana 4227.33 4 2016.4
68 2016 12 CBT Noroeste 3420.17 4 2016.4
69 2016 12 CBT Noreste 3551.79 4 2016.4
70 2016 12 CBT Cuyo 4045.75 4 2016.4
71 2016 12 CBT Patagonia 4994.91 4 2016.4
https://stackoverflow.com/questions/60694831
复制相似问题