Python 当没有指定要透视的列时,pivot_表做什么?

Python 当没有指定要透视的列时,pivot_表做什么?,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个存储此数据的DF“用户”: weekday city visitors signups 0 Sun Austin 139 7 1 Sun Dallas 237 12 2 Mon Austin 326 3 3 Mon Dallas 456 5 我不明白这个的结果: users.pivot_table(index ='weekday')

我有一个存储此数据的DF“用户”:

  weekday    city  visitors  signups
0     Sun  Austin       139        7
1     Sun  Dallas       237       12
2     Mon  Austin       326        3
3     Mon  Dallas       456        5
我不明白这个的结果:

users.pivot_table(index ='weekday')
输出:

         signups  visitors
weekday                   
Mon          4.0       391
Sun          9.5       188
我知道pivot_表聚合的默认函数是
mean()

我只是不明白它是如何“旋转”桌子的。

为什么城市没有出现?

默认的
pivot\u表
行为作用于所有非键列,并在内部调用
groupby.agg
()。如果存在
agg
无法调用函数的列(在本例中为
mean
),则看起来
agg
只是忽略了它们()。下面是一个愚蠢的例子,我们将函数更改为接受字符串或数字,
pivot\u table
适用于所有列:

import pandas as pd
import numpy as np

def custom_mean(l):
    if type(l.iloc[0]) == str:
        return ''.join(l)
    else:
        return np.mean(l)

df = pd.DataFrame({'weekday':  ['Sun', 'Sun', 'Mon', 'Mon'],
                   'city':     ['Austin', 'Dallas', 'Austin', 'Dallas'],
                   'visitors': [139, 237, 326, 456],
                   'signups':  [7, 12, 3, 5]})


print(df.pivot_table(index = 'weekday', aggfunc = custom_mean))
输出:

                 city  signups  visitors
weekday                                 
Mon      AustinDallas      4.0       391
Sun      AustinDallas      9.5       188