Python 当没有指定要透视的列时,pivot_表做什么?
我有一个存储此数据的DF“用户”: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')
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