In the dataset below, I want to write a function that does the following:
compares fuel consumption
mpgofNo_of_cylindersfor each uniquemodel.export all results (6 models) as a single csv file
# libraries
import pandas as pd
import numpy as np
from statsmodels.stats.multicomp import pairwise_tukeyhsd
# dataset
df= {
'Year':[2010,2010,2010,2010,2010,2010,2010,2010,2010,2010,2010,2010,2010,2010,2010,2010,2010,2010,2010,2010,2010,2010,2010,2010,2010,2010,2010,2010,2010,2010,2010,2010,2010,2010,2010,2010],
'Car_brand':['Honda','Honda','Honda','Honda','Honda','Honda','Toyota','Toyota','Toyota','Toyota','Toyota','Toyota','benz','benz','benz','benz','benz','benz','audi','audi','audi','audi','audi','audi','Honda','Honda','Honda','Honda','Honda','Honda','Toyota','Toyota','Toyota','Toyota','Toyota','Toyota'],
'model':['AA','AB','AC','AD','AE','AF','AA','AB','AC','AD','AE','AF','AA','AB','AC','AD','AE','AF','AA','AB','AC','AD','AE','AF','AA','AB','AC','AD','AE','AF','AA','AB','AC','AD','AE','AF'],
'No_of_cylinders':[4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,6,6,6,12,12,12,12,12,12,4,4,4,4,4,4,12,12,12,12,12,12],
'mpg':[100.78,112.34,108.52,139.19,149.02,177.77,79.18,89.10,106.78,102.34,128.52,119.19,129.02,147.77,169.18,170.11,134.56,176.1,112.0,123,124,523,112,334.5,55,449,221,332,235.6,239,235,223.7,235,204,315,614],
}
df = pd.DataFrame(df,columns = ['Year','No_of_cylinders','Car_brand','model','mpg'])
df
from statsmodels.stats.multicomp import pairwise_tukeyhsd
# perform Tukey's test
def tukeyHD(data,cont,cat):
tukeyResult= pairwise_tukeyhsd(endog=data[cont],groups=data[cat],alpha=0.05)
print(tukeyResult)
tukeyHD(df,'mpg','No_of_cylinders')
The code above runs tukeyHD on the entire dataset, I want to run a tukeyHD on each unique model (AA, AB,...., AF)
My attempt below:
def tukeyHD(data,cont,cat):
for group in data.groupby('model'):
tukeyResult= pairwise_tukeyhsd(data[cont],data[cat],alpha=0.05)
print(tukeyResult) # Preferrably want to export all 6 results in 1 csv file
tukeyResult.to_csv('tukeyresults05122022.csv',index = False)
tukeyHD(df,'mpg','No_of_cylinders')
Things to be aware of
No_of_cylinder has 3 groups - 4, 6,12
mpg is a the value we are using for the cylinder comparison
model - has 6 distinct groups - AA, AB, AC, AD, AE, AF
Please share your full code with comments for better understanding.....Thanks for your attempt.