【问题标题】:Distribution plot for time series时间序列的分布图
【发布时间】:2020-11-17 08:01:07
【问题描述】:

我有一个想用 Python 研究的案例:每次有人靠近放置在商店入口处的传感器时,都会保存日期/小时并发出 device_id (always=1)。 这是数据集: Dataset

我想在天/小时内绘制一个分布图,以查看一天内访问者数量的演变。

data = pd.read_csv('analysis.csv', index_col='device_local_date', , parse_dates=True)

我试图用 distplot 或 factorplot 绘制曲线,但我没有找到合适的曲线。 你认为最好的表现方式是什么?

提前致谢。

【问题讨论】:

  • 你能让数据可以访问吗?
  • 很遗憾我不能,我只能在图片上显示摘录,对不起。

标签: python statistics time-series data-visualization


【解决方案1】:

boucho

我认为您正在寻找的可以通过以下步骤来解决:

data = pd.read_csv('analysis.csv', index_col='device_local_date', , parse_dates=True)
data['hour'] = [x.hour for x in data['device_local_date']]
data['day']  = [x.day for x in data['device_local_date']]

sns.distplot(data['hour'])

这就是你会得到的

image_link

另一方面,如果您想查看每天每小时的客户数量,那么代码如下所示:

hours = data['hour'].unique()
hours.sort()

days = data['day'].unique()
days.sort()

for day in days:
    day_df = data[data['day'] == day]
    plt.plot(hours, [day_df[day_df['hour'] == hour].shape[0] for hour in hours], label = str(day))

plt.legend()
plt.show()

这是结果:

Number of customers per hour each day

希望这有用!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-15
    • 2018-07-06
    • 1970-01-01
    • 2021-10-25
    • 2015-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多