Python Pandas 综合练习

Python Pandas 综合练习

Pandas 综合练习

在线数据集地址:https://raw.githubusercontent.com/justmarkham/DAT8/master/data/chipotle.tsv

这个在线数据集是一份饭店的一段时间内的流水单,通过这一数据集解决一些综合问题

import pandas as pd
import numpy as np
url = 'https://raw.githubusercontent.com/justmarkham/DAT8/master/data/chipotle.tsv'
# 读取数据集
chipo = pd.read_csv(url, sep = '\t')
# 1. 输出前 10 条数据
chipo.head(10)
# 2. 输出观测数据的量
# 方法1
chipo.shape[0]
# 方法2
chipo.info()
# 3. 打印数据集的列数
chipo.shape[1]
# 4. 打印所有列名称
chipo.columns
# 5. 数据集的索引方式
chipo.index
# 6. 打印被点的最多的一道菜,并打印一共被点了多少份
c = chipo.groupby('item_name')
c = c.sum()
c = c.sort_values(['quantity'], ascending=False)
c.head(1)
# 7. 打印 choice_description 这一列中点的最多的菜
c = chipo.groupby('choice_description').sum()
c = c.sort_values(['quantity'], ascending=False)
c.head(1)
# 8. 打印所有点菜数的和
total_items_orders = chipo.quantity.sum()
total_items_orders
# 9. 将价格一列的所有数据类型转为 float 类型
# 首先检查价格一列数据类型
chipo.item_price.dtype
# 创建 lambda 函数并更改为目标类型
dollarizer = lambda x: float(x[1:-1])
chipo.item_price = chipo.item_price.apply(dollarizer)
# 再次检查价格一列数据类型
chipo.item_price.dtype
# 10. 打印数据集中展示的那段时间的总收入
revenue = (chipo['quantity']* chipo['item_price']).sum()
print('Revenue was: $' + str(np.round(revenue,2)))
# 11. 打印总订单数
orders = chipo.order_id.value_counts().count()
orders
# 12. 打印每单的平均收入
# 方法1
chipo['revenue'] = chipo['quantity'] * chipo['item_price']
order_grouped = chipo.groupby(by=['order_id']).sum()
order_grouped.mean()['revenue']
# 方法2
chipo.groupby(by=['order_id']).sum().mean()['revenue']
# 13. 打印一共买了多少种菜
chipo.item_name.value_counts().count()

参考资料

题目来源:

github guipsamora/pandas_exercises

posted @ 2023-03-06 23:23  ppqppl  阅读(49)  评论(0编辑  收藏  举报