在python中从long转换为wide
发布时间:2020-12-20 11:53:04 所属栏目:Python 来源:网络整理
导读:我认为这是一个非常简单的问题.我是 python的新手,我无法找到完美的答案. 我有一个数据帧: A B C D E203704 WkDay 00:00 0.247 2015203704 WkDay 00:30 0.232 2015203704 Wkend 00:00 0.102 2015203704 Wkend 00:30 0.0907 2015203704 WkDay 00:00 0.28 201
我认为这是一个非常简单的问题.我是
python的新手,我无法找到完美的答案.
我有一个数据帧: A B C D E 203704 WkDay 00:00 0.247 2015 203704 WkDay 00:30 0.232 2015 203704 Wkend 00:00 0.102 2015 203704 Wkend 00:30 0.0907 2015 203704 WkDay 00:00 0.28 2016 203704 WkDay 00:30 0.267 2016 203704 Wkend 00:00 0.263 2016 203704 Wkend 00:30 0.252 2016 我需要 : A B 00:00 00:30 E 203704 Wkday 0.247 0.232 2015 203704 Wkend 0.102 0.0907 2015 203704 Wkday 0.28 0.267 2016 203704 Wkday 0.263 0.252 2016 我已经浏览了各种链接,如this和this.但是,实现它们我遇到了各种错误. 我成功地运行了这个 pandas.pivot_table(df,values='D',index='A',columns='C') 但它没有给出我想要的东西. 对此有任何帮助会有所帮助. 解决方法
您可以添加多列列表作为参数索引的参数:
print (pd.pivot_table(df,index=['A','B','E'],columns='C',values='D').reset_index()) C A B E 00:00 00:30 0 203704 WkDay 2015 0.247 0.2320 1 203704 WkDay 2016 0.280 0.2670 2 203704 Wkend 2015 0.102 0.0907 3 203704 Wkend 2016 0.263 0.2520 如果需要更改列的顺序: #reset only last level of index df1 = pd.pivot_table(df,values='D').reset_index(level=-1) #reorder first column to last df1.columns = df1.columns[-1:] | df1.columns[:-1] #reset other columns print (df1.reset_index()) C A B 00:00 00:30 E 0 203704 WkDay 2015 0.247 0.2320 1 203704 WkDay 2016 0.280 0.2670 2 203704 Wkend 2015 0.102 0.0907 3 203704 Wkend 2016 0.263 0.2520 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |