熊猫Pivot_table格式化

时间:2015-10-28 09:51:11

标签: python pivot

如何使用单个aggfunc格式化多个值的pivot_table输出。多个值应该并排出现

数据框是:

kpi_date    ssaname              bts_name call_volume call_drop
0  2015-09-01  Bangalore   1002_NUc_Marathalli        8962      0.62
1  2015-09-03  Bangalore   1002_NUc_Marathalli        6567      1.19
2  2015-09-02  Bangalore   1002_NUc_Marathalli        7033      0.63
3  2015-09-01  Bangalore  1003_IU2_Munnekolalu        4659      1.17
4  2015-09-02  Bangalore  1003_IU2_Munnekolalu        6671      0.46

我希望输出为:

2015-09-01                  2015-09-02
bts_name,   call_volume   call_drop   call_volume call_drop 

使用pivot_table

2 个答案:

答案 0 :(得分:0)

您可以使用groupby或pivot_table函数来聚合call_volume和call_drop。

Python代码:

# Method 1: Using pivot_table
pd.pivot_table(df,index=["kpi_date","bts_name"],aggfunc=np.average)

# Method 2: Using groupby
df.groupby(["kpi_date", "bts_name"]).agg({"call_volume": np.average, "call_drop": np.average})

输出:

kpi_date bts_name                   call_drop    call_volume             
9/1/2015 1002_NUc_Marathalli        0.62         8962
         1003_IU2_Munnekolalu       1.17         4659
9/2/2015 1002_NUc_Marathalli        0.63         7033
         1003_IU2_Munnekolalu       0.46         6671
9/3/2015 1002_NUc_Marathalli        1.19         6567

修改

以下是将kpi_date作为列

的代码
# Python code
df.pivot_table(['call_volume', 'call_drop'], ['bts_name'], 'kpi_date')

                         call_volume                   call_drop                  
kpi_date                9/1/2015 9/2/2015 9/3/2015  9/1/2015 9/2/2015 9/3/2015
bts_name                                                                      
1002_NUc_Marathalli         8962     7033     6567      0.62     0.63     1.19
1003_IU2_Munnekolalu        4659     6671      NaN      1.17     0.46      NaN

答案 1 :(得分:0)

这是你在找什么?注意:我将您的列重命名为' call_v'和' call_d'更容易打印。

new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    error.printStackTrace();
                    Log.e("VOLLEY ERROR", "" + error.toString());
                }
            }

基本上这是聚合后堆叠和取消堆栈的问题。