如何在大padnas中拆堆(或旋转?)

如何在大padnas中拆堆(或旋转?),第1张

如何在大padnas中拆堆(或旋转?)

我们希望值(例如

'GERMANY'
)成为列名,并且希望列名称(例如
'HOUR1'
)成为值-各种交换

stack
方法将列名称转换为索引值,并且该
unstack
方法将索引值转换为列名称。

因此,通过将值移入索引,我们可以使用

stack
unstack
执行交换。

import pandas as pddatelisttemp = pd.date_range('1/1/2014', periods=3, freq='D')s = list(datelisttemp)*3s.sort()df = pd.Dataframe({'BORDER':['GERMANY','FRANCE','ITALY','GERMANY','FRANCE','ITALY','GERMANY','FRANCE','ITALY' ], 'HOUR1':[2 ,2 ,2 ,4 ,4 ,4 ,6 ,6, 6],'HOUR2':[3 ,3 ,3, 5 ,5 ,5, 7, 7, 7], 'HOUR3':[8 ,8 ,8, 12 ,12 ,12, 99, 99, 99]}, index=s)df = df.set_index(['BORDER'], append=True)df.columns.name = 'HOUR'df = df.unstack('BORDER')df = df.stack('HOUR')df = df.reset_index('HOUR')df['HOUR'] = df['HOUR'].str.replace('HOUR', '').astype('int')print(df)

产量

BORDER      HOUR  FRANCE  GERMANY  ITALY2014-01-01     1       2        2      22014-01-01     2       3        3      32014-01-01     3       8        8      82014-01-02     1       4        4      42014-01-02     2       5        5      52014-01-02     3      12       12     122014-01-03     1       6        6      62014-01-03     2       7        7      72014-01-03     3      99       99     99


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5655155.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存