Chipotle数据分析-知识点汇总
程序员文章站
2022-03-03 22:01:55
原文链接一、数据集信息import pandas as pdimport numpy as npimport matplotlib.pyplot as pltchipo = pd.read_csv('/Users/Desktop/十套python练习/exercise_data/chipotle.tsv', sep = '\t')chipo.head(10)#显示前十行chipo.shape[0]#显示行数chipp.shape[1]#显示列数chipo.columns#打印列名称chi...
原文链接
一、数据集信息
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
chipo = pd.read_csv('/Users/Desktop/十套python练习/exercise_data/chipotle.tsv', sep = '\t')
chipo.head(10)#显示前十行
chipo.shape[0]#显示行数
chipp.shape[1]#显示列数
chipo.columns#打印列名称
chipo.index#打印索引
二、分类(groupby)
- 被下单数(order)最多的商品(item_name)是什么?
#提取数量和名称两行,按照itemname进行分类,再对quantity进行聚合操作sum
#as_index表示是否将item_name列的各项作为index,若为True,则下图的ChickenBowl等在最左边index列
bestSeller = chipo[['quantity','item_name']].groupby('item_name', as_index = False).agg({'quantity':sum})
bestSeller.sort_values(ascending = False, inplace = True)
bestSeller.head()
- 每一单对应的平均总价是多少?
#创建新的一行subTotal,填入每一行的总花费并保留两位小数
chipo['subTotal'] = round(chipo[item_price] * chipo[quantity], 2)
#取花费列subTotal和order列,根据order进行分组,对相同单数的价格进行相加,得到每一单的总价,最后再对总价求平均值
chipo[['subTotal','order_id']].groupby('order_id').agg({'subTotal':sum})['subTotal'].mean()
df.groupby()和df.agg():
例:
df = pd.DataFrame({'Country':['China','China', 'India', 'India', 'America', 'Japan', 'China', 'India'],
'Income':[10000, 10000, 5000, 5002, 40000, 50000, 8000, 5000],
'Age':[5000, 4321, 1234, 4010, 250, 250, 4500, 4321]})
df
- 根据国家分组
df_gb = df.groupby('Country')
for index, data in df_gb:
print(index)
print(data)
output:
- 根据国家、收入分组
df_gb = df.groupby(['Country', 'Income'])
for index, data in df_gb:
print(index)
print(data)
output:
- 根据国家分组后对剩下的income和age分别求mean、max、min
df_gb = df.groupby('Country').agg(['mean', 'max', 'min'])
df_gb
- 根据国家分组,对剩下的age求min、mean、max,对income求min、max(用列表形式表示)
num_agg = {'Age':['min','mean','max'],'Income':['min','max']}
df_gb = df.groupby('Country').agg(num_agg)
print(df_gb)
本文地址:https://blog.csdn.net/MaeveShi/article/details/107636734