栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在大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


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/653037.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号