m0_74420115 2024-04-29 19:16 采纳率: 71.9%
浏览 2
已结题

python怎么查看数据的起始时间

我这个代码中文件中数据的起始日期是什么呢,是文件中的日期的起始时间吗

import pandas as pd
 
# 指定数据文件的路径
file_path = r"D:\data2.csv"  # 注意使用raw字符串以处理路径中的反斜杠
 
# 使用pandas读取CSV文件
df = pd.read_csv(file_path)
 
# 接下来,您的Stock_Price_LSTM_Data_Precesing函数以及其他代码可以保持不变,因为它们不依赖于数据获取方式。
 
def Stock_Price_LSTM_Data_Precesing(df,mem_his_days,pre_days):
    df.dropna(inplace=True)
    df.sort_index(inplace=True)
    df['label']= df['Close'].shift(-pre_days)
    from sklearn.preprocessing import StandardScaler
    scaler = StandardScaler()
    sca_X=scaler.fit_transform(df.iloc[:,:-1])   
    mem_his_days = 10
    
    from collections import deque
    deq = deque(maxlen=mem_his_days)
    
    X = []
    for i in sca_X:
        deq.append(list(i))
        if len(deq)==mem_his_days:
            X.append(list(deq))
    X_lately = X[-pre_days:]
    X = X[:-pre_days]
    y = df['label'].values[mem_his_days-1:-pre_days]
    
    
    import numpy as np
    X = np.array(X)
    y = np.array(y)
    return X,y,X_lately
 
X,y,X_lately = Stock_Price_LSTM_Data_Precesing(df,5,10)
print(len(X))
print(len(y))
print(len(X_lately))
 
pre_days = 10
mem_days=[5,10,15]
lstm_layers=[1,2,3]
dense_layers=[1,2,3]
units = [16,32]
 
from tensorflow.keras.callbacks import ModelCheckpoint
 
for the_mem_days in mem_days:
    for the_lstm_layers in lstm_layers:
        for the_dense_layers in dense_layers:
            for the_units in units:
                filepath="./minedata/{val_mape:.2f}_{epoch:02d}_men_1_lstm_1_dense_1_unit_16.weights.h5"
                checkpoint = ModelCheckpoint(
                    filepath=filepath,
                    save_weights_only=True,
                    monitor='val_mape',
                    mode='min',
                    save_best_only=True)
                X,y,X_lately = Stock_Price_LSTM_Data_Precesing(df,the_mem_days,pre_days)
                from sklearn.model_selection import train_test_split
                X_train,X_test,y_train,y_test = train_test_split(X,y,shuffle=False,test_size=0.1)
                import tensorflow as tf
                from tensorflow.keras.models import Sequential
                from tensorflow.keras.layers import LSTM,Dense,Dropout
                model = Sequential()
                model.add(LSTM(the_units,input_shape=X.shape[1:],activation='relu',return_sequences=True))
                model.add(Dropout(0.1))
                for i in range(the_lstm_layers):
                    model.add(LSTM(the_units,activation='relu',return_sequences=True))
                    model.add(Dropout(0.1))
                
                model.add(LSTM(the_units,activation='relu'))
                model.add(Dropout(0.1))
                for i in range(the_dense_layers):
                    model.add(Dense(the_units,activation='relu'))
                    model.add(Dropout(0.1))
                
                model.add(Dense(1))
                model.compile(optimizer='adam',
                             loss='mse',
                             metrics=['mape'])
                model.fit(X_train,y_train,batch_size=32,epochs=50,validation_data=(X_test,y_test),callbacks=[checkpoint])

  • 写回答

4条回答 默认 最新

  • 码农阿豪@新空间 新星创作者: 前端开发技术领域 2024-04-29 19:16
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    文件中数据的起始日期是没有在代码中显示出来的,需要在数据文件中查看。但是文件中的日期起始时间并没有在代码中指定和调用,因此无法确定。 案例:假设数据文件为data.csv,其中起始日期为2010年1月1日,代码可将日期起始时间指定为: start_date = '2010-01-01' df = pd.read_csv(file_path, parse_dates=['Date'], index_col=['Date']) df = df.loc[start_date:] # 选取起始日期之后的数据 这样,读入的数据就只包括起始日期之后的数据。在后续的处理中,可以使用df.index来获取数据中的日期信息。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 5月14日
  • 已采纳回答 5月6日
  • 创建了问题 4月29日