使用c语言写一段利用栈实现深度优先搜索
时间: 2024-05-01 16:17:05 浏览: 97
首先,我们需要先对数据进行预处理,将原始数据按照进站和出站分为两个数据集,并对每个数据集进行分组计数,得到进站和出站客流量最大的前三个站点。代码如下:
```python
import pandas as pd
# 读取数据
df = pd.read_csv('data.csv')
# 按照进站和出站分为两个数据集
in_df = df[df['type'] == 'in']
out_df = df[df['type'] == 'out']
# 分组计数并获取前三个站点
in_top3 = in_df.groupby('station')['num'].agg('sum').nlargest(3)
out_top3 = out_df.groupby('station')['num'].agg('sum').nlargest(3)
print('进站客流量最大的前三个站点:')
print(in_top3)
print('出站客流量最大的前三个站点:')
print(out_top3)
```
接下来,我们可以绘制每个站点的进站和出站客流时变曲线。代码如下:
```python
import matplotlib.pyplot as plt
# 绘制进站客流时变曲线
for station in in_top3.index:
temp_df = in_df[in_df['station'] == station]
temp_df = temp_df.groupby('time')['num'].agg('sum')
plt.plot(temp_df.index, temp_df.values, label=station)
plt.title('进站客流时变曲线')
plt.xlabel('时间')
plt.ylabel('客流量')
plt.legend()
plt.show()
# 绘制出站客流时变曲线
for station in out_top3.index:
temp_df = out_df[out_df['station'] == station]
temp_df = temp_df.groupby('time')['num'].agg('sum')
plt.plot(temp_df.index, temp_df.values, label=station)
plt.title('出站客流时变曲线')
plt.xlabel('时间')
plt.ylabel('客流量')
plt.legend()
plt.show()
```
运行上述代码,即可得到进站和出站客流量最大的前三个站点以及每个站点的客流时变曲线图。
阅读全文