文章目录

  • 1.商品数据分析
  • 2.消费金额和小费之间的关联与性别和吸烟与否的关系
  • 3.电影时长和电影排名分析

1.商品数据分析

文件名称: doc/chipo.csv
链接:提取码: jn96

文件描述: 每列数据分别代表如下: 订单编号, 订单数量, 商品名称, 商品详细选择项, 商品总价格
需求1:
1). 从文件中读取所有的数据;
2). 获取数据中所有的商品名称;
3). 跟据商品的价格进行排序, 降序,
将价格最高的20件产品信息写入mosthighPrice.xlsx文件中;

需求2:
1). 统计列[item_name]中每种商品出现的频率,绘制柱状图
(购买次数最多的商品排名-绘制前5条记录)
2). 根据列 [odrder_id] 分组,求出每个订单花费的总金额。
3). 根据每笔订单的总金额和其商品的总数量画出散点图。

需求1:
1). 从文件中读取所有的数据;

goodsInfo = pd.read_csv('doc/chipo.csv')
print(goodsInfo)
# print(goodsInfo.head())
# print(goodsInfo.tail())
# print(goodsInfo.info())
# print(goodsInfo.describe())

2). 获取数据中所有的商品名称;

print("商品名称显示: \n", goodsInfo['item_name'].head())  #显示前5
print("商品名称显示: \n", goodsInfo.item_name.head())  #同理


3). 跟据商品的价格进行排序, 降序,将价格最高的20件产品信息写入mosthighPrice.xlsx文件中;

# 重新赋值;因为价格里面有$符号,str.strip去掉$,字符串类型转为浮点型
goodsInfo.item_price = goodsInfo.item_price.str.strip('$').astype(np.float)
highPriceData = goodsInfo.sort_values('item_price', ascending=False)
print(highPriceData.head(5))
filename = '/tmp/mostHighPrice.xlsx'
highPriceData.to_excel(filename)
print("保存成功.......")

这里讲解一下字符串去掉$的操作:

import pandas as pd
import numpy as np
series1= pd.Series(['$A:1', '$B:2', '$C:3', np.nan, '$cat:3'])
print(series1)

# 将所有的字母转换为小写字母, 除了缺失值
print(series1.str.lower())

# 将所有的字母转换为大写字母, 除了缺失值
print(series1.str.upper())

# 分离
print(series1.str.split(":"))

# 去掉左右两端的某个字符
print(series1.str.strip('$'))


需求2:
1). 统计列[item_name]中每种商品出现的频率,绘制柱状图(购买次数最多的商品排名-绘制前5条记录)

goodsInfo = pd.read_csv('doc/chipo.csv')
# new_info会统计每个商品名出现的次数;其中 Unnamed: 0就是我们需要获取的商品出现频率;
newInfo = goodsInfo.groupby('item_name').count()
print(newInfo)


这里我装了一个 pip install pyecharts_snapshot,若自己有就不用按了

goodsInfo = pd.read_csv('doc/chipo.csv')
# new_info会统计每个商品名出现的次数;其中 Unnamed: 0就是我们需要获取的商品出现频率;
newInfo = goodsInfo.groupby('item_name').count()
# 取'Unnamed: 0'这一列的内容,取头五行
mostRaiseGoods = newInfo.sort_values('Unnamed: 0', ascending=False)['Unnamed: 0'].head(5)
print(mostRaiseGoods, type(mostRaiseGoods))   # series对象;# 获取对象中的商品名称;index行索引
x = mostRaiseGoods.index
# 获取商品出现的次数;values对象的值
y = mostRaiseGoods.valuesfrom  pyecharts import  Barbar = Bar("购买次数最多的商品排名")
bar.add("", x, y)
bar.render()

打印mostRaiseGoods:

render()结果:

需求2:
2). 根据列 [odrder_id] 分组,求出每个订单花费的总金额======订单数量(quantity)* 订单总价(item_price)
3). 根据每笔订单的总金额和其商品的总数量画出散点图。

goodsInfo = pd.read_csv('doc/chipo.csv')
# 获取订单数量
quantity = goodsInfo.quantity
# 获取订单总价
item_price = goodsInfo.item_price \= goodsInfo.item_price.str.strip('$').astype(np.float)# 根据列 [odrder_id] 分组
order_group = goodsInfo.groupby("order_id")
# 每笔订单的总金额
x = order_group.item_price.sum()
# 商品的总数量
y = order_group.quantity.sum()from pyecharts import  EffectScatter
scatter = EffectScatter("每笔订单的总金额和其商品的总数量关系散点图")
scatter.add("", x, y)
scatter.render()

2.消费金额和小费之间的关联与性别和吸烟与否的关系

文件名称: doc/tips.csv
链接: 提取码: g69h
文件内容: 总消费金额, 小费金额, 性别, 是否抽烟, 日期, 时间, 星期
需求:
- 分别吸烟顾客与不吸烟顾客的消费金额与小费之间的散点图;
- 女性与男性中吸烟与不吸烟顾客的消费金额与小费之间的散点图关系;

import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
filename = '/home/kiosk/Desktop/python/python0225/tips.csv'
data = pd.read_csv(filename)# 吸烟顾客消费金额与小费之间的散点图
#列信息: ,total_bill,tip,sex,smoker,day,time,size
#提取表格中'smoker'=='Yes'的数据
smoker = data[data['smoker'] == 'Yes']
print(smoker)

x_total_bill = smoker['total_bill']
y_tip = smoker['tip']from pyecharts import  Scatter
scatter = Scatter("吸烟顾客消费金额与小费之间的散点图")
scatter.add("", x_total_bill, y_tip)
scatter.render()

不吸烟与吸烟相反:

# 实现不吸烟顾客消费金额与小费之间的散点图
no_smoker = data[data['smoker'] != 'Yes']
# print(smoker.head())
x_total_bill = no_smoker['total_bill']
y_tip = no_smoker['tip']from pyecharts import  Scatter
scatter = Scatter("不吸烟顾客消费金额与小费之间的散点图")
scatter.add("", x_total_bill, y_tip)
scatter.render()

# 女性中吸烟与不吸烟顾客的消费金额与小费之间的散点图关系;
# 1). 获取所有吸烟的用户信息
smoker = data[data['smoker'] == 'Yes']
# 2).从所有的吸烟用户中找出性别为女的用户信息;
female_smoker = smoker[smoker['sex']=='Female']# 1). 获取所有不吸烟的用户信息
no_smoker = data[data['smoker'] != 'Yes']
# 2).从所有的吸烟用户中找出性别为女的用户信息;
female_no_smoker = no_smoker[no_smoker['sex']=='Female']
# 3). 绘制散点图
from pyecharts import  Scatter
scatter = Scatter("消费金额与小费之间的散点图")
scatter.add("吸烟女顾客", female_smoker['total_bill'], female_smoker['tip'])
scatter.add("不吸烟女顾客", female_no_smoker['total_bill'], female_no_smoker['tip'])scatter.render()

3.电影时长和电影排名分析

文件名称:doc/special_top250.csv
链接:提取码: 45ey
1)电影时长与电影排名之间的关系散点图
2)绘制电影时常的频率分布直方图

1)电影时长与电影排名之间的关系散点图

filename = 'doc/special_top250.csv'
data = pd.read_csv(filename)
print(data.head())
# 获取电影时长
x_series = data.movie_duration
# 获取电影排名
y_series = data.num
from pyecharts import  Scatter
scatter = Scatter("电影时长与电影排名的散点图")
scatter.add("", x_series, y_series)
scatter.render()


2)绘制电影时常的频率分布直方图

movie_duration = data.groupby("movie_duration").count()
x_time = movie_duration.index
y_count = movie_duration['Unnamed: 0']
print(x_time)
print(y_count)from pyecharts import  Bar
scatter = Bar("电影时长频率分布直方图")
scatter.add("", x_time, y_count)
scatter.render()

python-DataFrame练习相关推荐

  1. python打印自动换行如何解决_解决python DataFrame 打印结果不换行问题

    解决python DataFrame 打印结果不换行问题 如下所示: 加入代码: pd.set_option('display.width', 5000) 补充知识:Python 实现不换行打印字符的 ...

  2. python数据框的横向贾总_[Spark][Python]DataFrame的左右连接例子

    [Spark][Python]DataFrame的左右连接例子 $ hdfs dfs -cat people.json {"name":"Alice",&quo ...

  3. python中如何计算集合的长度_Python如何计算序列长度 python dataframe中元素如何统计?...

    如何在python列表中查找某个元素的索引 方法二:利用enumerate函数.没有任何一个男人,可以游手好闲赢得女人的欣赏. python dataframe中元素如何统计? 比如我有一个数据集a, ...

  4. python Dataframe 根据某一列的值来删除多行

    python Dataframe 根据某一列的值来删除多行 在Dataframe中,有的时候想根据某一列值来删除. 方法一:你可以做负isin()索引: In [57]: df Out[57]:a b ...

  5. python DataFrame常用描述性统计分析方法

    python DataFrame常用描述性统计分析方法 文章目录 python DataFrame常用描述性统计分析方法 sum() 求和 mean() 求平均值 max() 最大值 & mi ...

  6. python dataframe取某行某列_pandas dataframe.apply() 实现对某一行/列进行处理获得一个新行/新列...

    重点: dataframe.apply(function,axis)对一行或一列做出一些操作(axis=1则为对某一列进行操作,此时,apply函数每次将dataframe的一行传给function, ...

  7. python dataframe 中位数_python下的Pandas中DataFrame基本操作(一),基本函数整理

    pandas作者Wes McKinney 在[PYTHON FOR DATA ANALYSIS]中对pandas的方方面面都有了一个权威简明的入门级的介绍,但在实际使用过程中,我发现书中的内容还只是冰 ...

  8. python dataframe 计算上下两行的差值_用Python进行数据清洗!

    导读:数据清洗是数据分析的必备环节,在进行分析过程中,会有很多不符合分析要求的数据,例如重复.错误.缺失.异常类数据. Python资源共享群:626017123 01 重复值处理 数据录入过程.数据 ...

  9. python dataframe 如何去除缺失值

    2019独角兽企业重金招聘Python工程师标准>>> df.dropna(axis=0, how='any', thresh=None, subset=None, inplace= ...

  10. python dataframe数据类型_python-Pandas DataFrame,1、2、3和NaN值的默认数据类型

    d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']), 'two' : pd.Series([1, 2, 3, 4], index=['a' ...

最新文章

  1. 【怎样写代码】对象克隆 -- 原型模式(二):解决方案
  2. python闭包锁住女神的心
  3. 如何处理网络丢包故障?—Vecloud微云
  4. r语言electricity数据集_R语言学习-数据集
  5. python打印进度条starting...done_python打印进度条-tqdm
  6. datagrip导入csv数据配合ajax+mysql+Flask实验
  7. WPF:使用Json.NET在TreeView中树形显示JSON数据
  8. 使用Spring MVC,Mybatis框架等创建Java Web项目时各种前期准备的配置文件内容
  9. oracle精确匹配时间,Oracle时间精确到时、分、秒处理方法
  10. vue-cli打包后的思索--代码优化
  11. Android执行时ART载入OAT文件的过程分析
  12. 《单词的减法》state1~state17(第一遍学习记录)
  13. 【图像隐写】基于matlab GUI DWT与SVD数字水印 【含Matlab源码 253期】
  14. 牛顿插值法 matlab程序计算方法,牛顿插值法matlab程序
  15. Matlab实现Compow协议,optisystem和matlab协同仿真
  16. 计算机与材料物理,南京邮电大学材料物理专业
  17. 谷歌浏览器为什么不能自定义安装路径?
  18. 驾驶证机动车查询验证WebSerivce调用编程接口说明及示例代码
  19. 2020年12月统考练习题
  20. onload和DOMContentLoaded事件

热门文章

  1. 《从0到1:CTFer成长之路》SQL注入-2
  2. vivo手机android耗电快怎么解决,vivo手机耗电严重怎么办 如何解决手机耗电严重的问题...
  3. QuasarRAT-windows下远程控制工具
  4. 5G驱动下边缘计算的发展趋势与投资机会
  5. 3dmark压力测试 linux,压榨你的电脑潜能:3DMark压力测试正式发布
  6. 2017淘宝嘉年华群聊玩法出炉
  7. android商品销售系统,化工产品销售管理系统
  8. 解决Android WebVIew中视频播放前出现的灰色三角形播放图标
  9. python抓取A股市场历史数据(个股、指数)
  10. web课程设计网页规划与设计(HTML+CSS+JavaScript仿悦世界游戏官网 6个页面)