2023 高等教育協会カップ全国大学生数学モデリング コンテスト質問 E 黄河水と堆積物のモニタリング データ分析コード分析
不可抗力のため、Python コードの一部 (最初の質問の部分) のみを以下に示します。コードの残りの部分は記事の最後にあります。
まずパッケージをインポートします。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import statsmodels.api as sm
import pmdarima as pm
from sklearn.linear_model import LinearRegression
import seaborn as sns
次に、同じことが繰り返されるため、テーブル データを削除する必要があります。
table = pd.read_excel(r"./data/附件1.xlsx")
for i in range(2017, 2017+5):
# 移除table最后一条数据(重复了)
# print(table.iloc[len(table)-1])
table.drop((len(table)-1),inplace=True)
i = str(i)
temp = pd.read_excel(r"./data/附件1.xlsx",sheet_name = i)
table = pd.concat([table, temp])
table = table.reset_index(drop=True)
table
以下はデータ前処理コードの一部です。
# 数据预处理
time_list = []
for i in range(len(table)):
m, d, h = str(int(table.iloc[i,1])), str(int(table.iloc[i,2])),str(table.iloc[i,3])
if(int(table.iloc[i,1])<10):
m = "0" + str(int(table.iloc[i,1]))
if(int(table.iloc[i,2])<10):
d = "0" + str(int(table.iloc[i,2]))
# print(m,d)
time = str(int(table.iloc[i,0]))+"-"+ m+"-"+ d +" "+ h
# print(time)
time_list.append(time)
temp = pd.DataFrame(time_list, columns=["时刻"])
temp["时刻"]= pd.to_datetime(temp["时刻"])
# temp.to_csv('example3.csv', index=False)
# temp
最初の質問の視覚化図のコードの一部:
# 创建子图
fig, axes = plt.subplots(nrows=3, ncols=1, figsize=(10, 10))
# 绘制水位数据
axes[0].plot(data.index, data['水位(m)'], label='Water Level', color='blue')
axes[0].set_ylabel('Water Level (m)')
axes[0].set_title('Water Level Over Time')
# 绘制水流量数据
axes[1].plot(data.index, data['流量(m3/s)'], label='Flow Rate', color='green')
axes[1].set_ylabel('Flow Rate (m^3/s)')
axes[1].set_title('Flow Rate Over Time')
# 绘制含沙量数据
axes[2].plot(data.index, data['含沙量(kg/m3) '], label='Sediment Content', color='red')
axes[2].set_xlabel('Time')
axes[2].set_ylabel('Sediment Content')
axes[2].set_title('Sediment Content Over Time')
得る:
アイデア、関連コード、説明ビデオ、リファレンス、その他の関連コンテンツについては、下のグループ名刺をクリックしてください。