Использование DataFrame.groupby().sum() для группировки строк на основе одного или нескольких столбцов и вычисления функции суммирования суммы. Функция groupby() возвращает объект DataFrameGroupBy, который содержит агрегатную функцию sum() для вычисления суммы заданного столбца для каждой группы.Как использовать функции groupby() и sum() вместе с примерами. group by & sum для одного и нескольких столбцов выполняется несколькими способами в pandas, некоторые из них — это функции groupby(), pivot(), transform() и aggregate().
(.env) boris@boris-All-Series:~/MATPLOTLIBSR/PANDASGROUPS$ cat groupsPandas.py
import pandas as pd
import warnings
warnings.simplefilter(action='ignore', category=FutureWarning)
technologies = ({
'Courses':["Spark","PySpark","Hadoop","Python","Pandas","Hadoop","Spark","Python"],
'Fee' :[22000,25000,23000,24000,26000,25000,25000,22000],
'Duration':['30days','50days','55days','40days','60days','35days','55days','50days'],
'Discount':[1000,2300,1000,1200,2500,1300,1400,1600]
})
df0 = pd.DataFrame(technologies)
print(df0)
print("\n")
df = pd.DataFrame(technologies, columns=['Courses','Fee','Duration','Discount'])
print(df)
print("\n")
# Use GroupBy() to compute the sum
df2 = df.groupby('Courses').sum()
print(df2)
print("\n")
# Using GroupBy multiple column
df2 = df.groupby(['Courses','Duration'])['Fee'].sum()
print(df2)
print("\n")
# Groupby and get sum() and count()
df2 = df.groupby('Courses')['Fee'].agg(['sum','count'])
print(df2)
print("\n")
# Pandas groupby get sum() and count()
df2 = df.groupby('Courses').agg({'Fee': ['sum','count']})
print(df2)
print("\n")
# Sorting group keys on descending order
groupedDF = df.groupby('Courses',sort=False).sum()
sortedDF=groupedDF.sort_values('Courses', ascending=False)
print(sortedDF)
print("\n")
# Using reset_index()
df2 = df.groupby(['Courses'])['Fee'].sum().reset_index()
print(df2)
print("\n")
# GroupBy multiple columns using agg()
df2 = df.groupby(['Courses','Duration'])['Discount'].agg("sum")
print(df2)
print("\n")
# GroupBy multiple columns using transform()
df2 = df.groupby(['Courses', 'Fee'])['Discount'].transform('sum')
print(df2)
print("\n")
# GroupBy multiple columns using pivot function
df2 = df.groupby(['Courses','Duration'],as_index = False).sum().pivot('Courses','Duration').fillna(0)
print(df2)
print("\n")
# DataFrame.set_index using sum with level
df2 = df.set_index(['Courses','Duration']).sum(level=[0,1])
print(df2)
print("\n")
No comments:
Post a Comment