python怎么保存数据框转置结果_python – 如何转置pandas数据帧以交叉制表保存所有值的数据帧...
我們假設我們有這樣的數據幀:
df = pd.DataFrame({'key' : ['one', 'two', 'three', 'four'] * 3,
'col' : ['A', 'B', 'C'] * 4,
'val1' : np.random.randn(12),
'val2' : np.random.randn(12),
'val3' : np.random.randn(12)})
key col是唯一的密鑰
我想使col值成為拆分列或交叉列表,最后看起來像這樣:
第一個天真的方法pd.crosstab(df.key,df.col)在這里工作不好:
此代碼pd.crosstab(df.key,df.col,values = df [[‘val1′,’val2′,’val3’]],aggfunc = np.max)無法使用ValueError運行:傳遞的項目數錯誤3,安置意味著1
怎么運作?
解決方法:
df = (df.pivot_table(index='key', columns='col', aggfunc=np.max)
.swaplevel(0,1,axis=1)
.sort_index(axis=1))
替代方案是在GroupBy.max之前匯總:
df = (df.groupby(['key', 'col'])
.max()
.unstack()
.swaplevel(0,1,axis=1)
.sort_index(axis=1))
print (df)
col A B C \
val1 val2 val3 val1 val2 val3 val1
key
four -0.225967 0.362041 0.040915 -1.227718 -0.879248 -1.279912 -1.577218
one -0.187167 1.530731 -1.112116 -0.871077 -2.099876 -0.069297 -0.351971
three -0.165375 -0.378049 -0.390724 0.484519 -0.408990 -1.496042 0.590083
two 1.923084 -0.688284 1.702659 -0.159921 0.635245 0.623821 -1.503893
col
val2 val3
key
four -1.135872 0.645371
one 2.347472 0.129252
three 0.402825 0.883710
two -0.132847 0.179476
標簽:python,dataframe,pandas,crosstab
來源: https://codeday.me/bug/20190722/1499944.html
總結
以上是生活随笔為你收集整理的python怎么保存数据框转置结果_python – 如何转置pandas数据帧以交叉制表保存所有值的数据帧...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 能充电的能量鞋可以经常充电吗?
- 下一篇: android数据库降级_Android