Python数据分析:出租车订单时变情况分析

作者:JC2024.01.17 22:17浏览量:6

简介:本文将使用Python来分析出租车订单数据,计算每小时和每30分钟的订单数量,并绘制相应的折线图来展示订单随时间的变化情况。

首先,我们需要确保已经安装了必要的Python库。如果没有安装,可以使用以下命令进行安装:

  1. pip install pandas matplotlib

接下来,假设我们有一个CSV文件,其中包含每笔出租车订单的记录,包括订单时间。我们可以使用pandas库来读取和处理这些数据。

  1. import pandas as pd
  2. import matplotlib.pyplot as plt
  3. # 读取数据
  4. data = pd.read_csv('taxi_orders.csv')
  5. # 将日期时间字符串转换为Python datetime对象
  6. data['order_time'] = pd.to_datetime(data['order_time'])
  7. # 将日期时间设置为索引,以便按小时和分钟进行分组
  8. data.set_index('order_time', inplace=True)

现在,我们可以按小时和30分钟来对订单数据进行分组,并计算每组的订单数量。这里使用resample函数将数据重采样为指定的频率(例如每小时或每30分钟),然后使用groupby函数按时间进行分组,最后使用size函数计算每个组的订单数量。

  1. # 按小时和30分钟分组并计算订单数量
  2. hourly_orders = data.resample('1H').groupby(pd.Grouper(key='order_time', freq='H')).size()
  3. half_hourly_orders = data.resample('30T').groupby(pd.Grouper(key='order_time', freq='30min')).size()

现在,我们可以将结果存储为CSV文件,以便后续分析。

  1. # 将结果保存为CSV文件
  2. hourly_orders.to_csv('hourly_orders.csv')
  3. half_hourly_orders.to_csv('half_hourly_orders.csv')

最后,我们可以使用matplotlib库来绘制折线图,展示订单随时间的变化情况。这里我们绘制两个图,一个按小时显示,一个按每30分钟显示。请注意,这里假设我们的数据包含24小时的数据,如果不是这种情况,需要调整X轴的范围以适应实际情况。

  1. # 绘制按小时和每30分钟的订单数量折线图
  2. plt.figure(figsize=(12, 6))
  3. plt.plot(hourly_orders, marker='o')
  4. plt.xlabel('Time (hours)')
  5. plt.ylabel('Number of orders')
  6. plt.title('Number of taxi orders by hour')
  7. plt.savefig('orders_by_hour.png')
  8. plt.close()
  9. plt.figure(figsize=(12, 6))
  10. plt.plot(half_hourly_orders, marker='o')
  11. plt.xlabel('Time (30 minutes)')
  12. plt.ylabel('Number of orders')
  13. plt.title('Number of taxi orders every 30 minutes')
  14. plt.savefig('orders_by_half_hour.png')