第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在pivot_table聚合后映射pandas結果?

如何在pivot_table聚合后映射pandas結果?

元芳怎么了 2021-06-07 13:50:49
我有一些像這樣通過的測試數據:import numpy as npimport pandas as pddata = [[np.random.choice(['Tmax', 'Tmin']), np.random.choice(['USA', 'FRA', 'AUS']),         np.random.randint(1,4), np.random.choice(['Class A', 'Class B']),np.random.randint(4)] for i in range(1000)]df = pd.DataFrame(data, columns=['temp', 'region', 'method', 'slice', 'pass'])我已經使用np.mean函數旋轉數據框,如下所示:pv = pd.pivot_table(df,                index=['temp', 'method'],                values=['pass'],               columns=['slice', 'region'],              aggfunc=(np.mean))'pass'變量的值是通過小數形式的測試的平均值,如 0.45、1.5 3.2...,但是我想用以下函數映射這些結果def results_mapper(v):    num_tests = np.round(v)    if num_tests < 2:        return 1    elif num_tests == 2:        return 2    else:        return 3我嘗試使用pv.map(results_mapper), or來映射結果,map(results_mapper, pv)但沒有運氣。樣本數: 在pv輸出數字也能像0.5, 1.1, 1.49, 1.6, 1.9, 2.1, 2.9, 3.5將被映射到 1, 1, 1, 2, 2, 2, 3, 3如何通過保持數據透視表格式不變將映射函數應用于我的結果?
查看完整描述

1 回答

?
慕尼黑5688855

TA貢獻1848條經驗 獲得超2個贊

用 np.vectorize


func = np.vectorize(results_mapper)

pv.values[:,:] = func(pv.values)

輸出

              pass                            

slice       Class A           Class B          

region          AUS  FRA  USA     AUS  FRA  USA

temp method                                    

Tmax 1          1.0  1.0  2.0     2.0  2.0  1.0

     2          1.0  2.0  1.0     1.0  1.0  1.0

     3          1.0  2.0  2.0     2.0  2.0  2.0

Tmin 1          2.0  1.0  2.0     2.0  1.0  2.0

     2          2.0  2.0  1.0     2.0  1.0  2.0

     3          2.0  1.0  1.0     2.0  2.0  1.0


查看完整回答
反對 回復 2021-06-09
  • 1 回答
  • 0 關注
  • 194 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號