1、读取数据
import pandas as pd

df = pd.read_csv('快餐数据.tsv', sep = '\t')
print(df)

快餐数据分析--Python数据分析实例_缺失值

2、查看基本信息

查看前五条数据

df.head()

快餐数据分析--Python数据分析实例_缺失值_02

查看整体信息

df.info()

快餐数据分析--Python数据分析实例_数据_03

可以看到,一共有4622条数据,只有 choice_description列有缺失值, item_price为object类型是因为 价格前面有 $ 符号。 打印列名称

df.columns
Index(['order_id', 'quantity', 'item_name', 'choice_description',
       'item_price'],
      dtype='object')

快餐数据分析--Python数据分析实例_四舍五入_04

3、详细信息

查询各商品的下单数

df[['quantity','item_name']].groupby('item_name', as_index = False).sum()

这里先按 item_name 分组,再按 quantity 求和,as_index 表示不将 item_name 作为序号

快餐数据分析--Python数据分析实例_数据_05

快餐数据分析--Python数据分析实例_数据_06

一共有50种商品,我们再按数量从高到低排序

c = df[['quantity','item_name']].groupby('item_name', as_index = False).sum()

# inplace为True 表示替换原数据
c.sort_values('quantity',ascending = False, inplace = True)
c.head() # 查看前五条

快餐数据分析--Python数据分析实例_缺失值_07

可以看到下单量最多的商品

查看某一列有多少个不同的值,使用 nunique

df['item_name'].nunique()

在 choice_description 中,下单次数最多的商品是什么

# value_counts() 对Series里面的每个值进行计数并且排序
df['choice_description'].value_counts().head()

快餐数据分析--Python数据分析实例_四舍五入_08

总下单数

c['quantity'].sum() # 对该列求和

4972

计算每一行对应订单的收入

# round 四舍五入,保留2位小数
df['sub_total'] = round(df['item_price']*df['quantity'],2)

快餐数据分析--Python数据分析实例_缺失值_09

总收入

df['sub_total']

39237.02

计算每个订单的收入

# 按订单id分组,对 sub_total 求和
df[['order_id','sub_total']].groupby('order_id').sum()

快餐数据分析--Python数据分析实例_四舍五入_10

求所有订单的平均收入 在每个订单收入的基础上,对 sub_total 求均值

df[['order_id','sub_total']].groupby('order_id').sum()['sub_total'].mean()

21.39423118865867