当前位置: 移动技术网 > IT编程>脚本编程>Python > Chipotle数据分析-知识点汇总

Chipotle数据分析-知识点汇总

2020年07月30日  | 移动技术网IT编程  | 我要评论

原文链接
一、数据集信息

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

在这里插入图片描述

  1. 根据国家分组
df_gb = df.groupby('Country')
for index, data in df_gb:
    print(index)
    print(data)

output:
在这里插入图片描述

  1. 根据国家、收入分组
df_gb = df.groupby(['Country', 'Income'])
for index, data in df_gb:
    print(index)
    print(data)

output:
在这里插入图片描述

  1. 根据国家分组后对剩下的income和age分别求mean、max、min
df_gb = df.groupby('Country').agg(['mean', 'max', 'min'])
df_gb

在这里插入图片描述

  1. 根据国家分组,对剩下的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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网