pandas 数量增加趋势图

ξ    绘制某一时间段内 数量 增加趋势图


  • 实验环境:Jupyter NoteBook(Python 3 内核)

  • 为了更容易理解,这里虚拟“某用户量”表征“数量”

  • 数据获取方式:
    • 手动操作,复制文件内容赋值给 user_list 列表
    • 代码读取,通过 open 关键字读取文件内容至 user_list 变量中

α    读取文件内容代码如下:

# 引入所需的数据包

import pandas as pd
import numpy as np

# 将变量读取到 user_lsit 列表中
filename = 'C:\\Users\\Khgines\\Desktop\\user_add.txt'
user_list = [var.strip('\n').split(',') for var in open(filename, 'r')]

# 将 user_list 列表数据转换为 DataFrame操作,其中将 user_cnt字段转换为整型
user_df = pd.DataFrame(user_list, columns=['date', 'user_cnt'])
user_df['int_user_cnt'] = user_df.user_cnt.astype(np.int32)

# 打印前 10 行
user_df.head(10)

y

  • 以日期(date)为 X 轴,某用户量(int_user_cnt,整型)为 Y 轴,利用pandas.DataFrame.plot 方法绘制折线图,曲线近似一条 y=kx+b 的直线。代码、折线图如下所示:
# 绘制代码
user_df.plot(kind='line', x='date', y='int_user_cnt', linestyle='-', marker='o', markerfacecolor='red', color='green', figsize=(8,4), title='Picture 1 : Trend of user_cnt in recent 30 days\n')

yy

β    虽然增幅很相近,但是想进一步查看 user_cnt 的增加趋势怎么办呢?


γ    利用numpy.array计算,利用pandas.DataFrame.plot绘图
  • 绘图代码:
# 获取用户量增加量,并转换为 DataFrame
user_rise_df = pd.DataFrame(np.array(user_df.int_user_cnt[1:]) - np.array(user_df.int_user_cnt[:-1]), columns=['users_rise_up'])
# 添加日期列
user_rise_df['date'] = user_df.date[1:]
# 绘制 用户量增幅 折线图
user_rise_df.plot(kind='line', x='date' ,y='users_rise_up', linestyle='-', markerfacecolor='red', marker='o', color='green', figsize=(8,4), grid=True);
  • 用户量变化趋势如下图:

y_rise


PS

- 1.着重学习 Python 绘图语句
- 2.如何更好、高效地计算出 用户增量
- 3.附 2 个下载该小实验的源代码以及实验数据的地址:
- CSDN [ 需要 1 积分,设置值最小为1,一脸无奈 ]
- GitHub [ users_rise_up_period.ipynb(脚本)、users_rise_up_period_data(数据)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xsimah

创作不易,感谢客官的打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值