In [1]:
import pandas as pd
import numpy as np
In [2]:
print(pd.__version__)
In [3]:
print(pd.DataFrame.agg is pd.DataFrame.aggregate)
In [4]:
df = pd.DataFrame({'A': [0, 1, 2], 'B': [3, 4, 5]})
print(df)
In [5]:
print(df.agg(['sum', 'mean', 'min', 'max']))
In [6]:
print(type(df.agg(['sum', 'mean', 'min', 'max'])))
In [7]:
print(df.agg(['sum']))
In [8]:
print(type(df.agg(['sum'])))
In [9]:
print(df.agg('sum'))
In [10]:
print(type(df.agg('sum')))
In [11]:
print(df.agg({'A': ['sum', 'min', 'max'],
'B': ['mean', 'min', 'max']}))
In [12]:
print(df.agg({'A': 'sum', 'B': 'mean'}))
In [13]:
print(df.agg({'A': ['sum'], 'B': ['mean']}))
In [14]:
print(df.agg({'A': ['min', 'max'], 'B': 'mean'}))
In [15]:
print(df.agg(['sum', 'mean', 'min', 'max'], axis=1))
In [16]:
s = df['A']
print(s)
In [17]:
print(s.agg(['sum', 'mean', 'min', 'max']))
In [18]:
print(type(s.agg(['sum', 'mean', 'min', 'max'])))
In [19]:
print(s.agg(['sum']))
In [20]:
print(type(s.agg(['sum'])))
In [21]:
print(s.agg('sum'))
In [22]:
print(type(s.agg('sum')))
In [23]:
print(s.agg({'Total': 'sum', 'Average': 'mean', 'Min': 'min', 'Max': 'max'}))
In [24]:
# print(s.agg({'NewLabel_1': ['sum', 'max'], 'NewLabel_2': ['mean', 'min']}))
# SpecificationError: nested renamer is not supported
In [25]:
print(df.agg(['mad', 'amax', 'dtype']))
In [26]:
print(df['A'].mad())
In [27]:
print(np.amax(df['A']))
In [28]:
print(df['A'].dtype)
In [29]:
# print(df.agg(['xxx']))
# AttributeError: 'xxx' is not a valid function for 'Series' object
In [30]:
# print(df.agg('xxx'))
# AttributeError: 'xxx' is not a valid function for 'DataFrame' object
In [31]:
print(hasattr(pd.DataFrame, '__array__'))
In [32]:
print(hasattr(pd.core.groupby.GroupBy, '__array__'))
In [33]:
print(df.agg([np.sum, max]))
In [34]:
print(np.sum(df['A']))
In [35]:
print(max(df['A']))
In [36]:
print(np.abs(df['A']))
In [37]:
print(df.agg([np.abs]))
In [38]:
# print(df.agg([np.abs, max]))
# ValueError: cannot combine transform and aggregation operations
In [39]:
def my_func(x):
return min(x) / max(x)
In [40]:
print(df.agg([my_func, lambda x: min(x) / max(x)]))
In [41]:
print(df['A'].std())
In [42]:
print(df['A'].std(ddof=0))
In [43]:
print(df.agg(['std', lambda x: x.std(ddof=0)]))
In [44]:
print(df.agg('std', ddof=0))
In [45]:
print(df.agg(['std'], ddof=0))
In [46]:
df_str = df.assign(C=['X', 'Y', 'Z'])
print(df_str)
In [47]:
# df_str['C'].mean()
# TypeError: Could not convert XYZ to numeric
In [48]:
print(df_str.agg(['sum', 'mean']))
In [49]:
print(df_str.agg(['mean', 'std']))
In [50]:
print(df_str.agg(['sum', 'min', 'max']))
In [51]:
print(df_str.select_dtypes(include='number').agg(['sum', 'mean']))