m0_74420115 2024-05-01 19:42 采纳率: 71.9%
浏览 2
已结题

python怎么把输入的数据变为D盘下的数据

这是我的代码,怎么让输入的数据变为D盘中的csv文件,这个文件日期是降序排列的

import pandas_datareader.data as web
import datetime
start = datetime.datetime(2000,1,1)
end = datetime.datetime(2024,1,1)
df = web.DataReader('GOOGL', 'stooq',start,end)
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)
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=f"./chankankushuju/{{val_mape:.2f}}{{epoch:02d}}men{the_lstm_layers}lstm{the_lstm_layers}dense{the_dense_layers}unit{the_units}.keras"
                checkpoint = ModelCheckpoint(
                    filepath=filepath,
                    save_weights_only=False,
                    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])

  • 写回答

5条回答 默认 最新

  • GISer Liu 2024-05-01 19:54
    关注

    该回答引用自GPT-3.5,由博主GISer Liu编写:

    你好!你想要将输入的数据保存为 D 盘中的 CSV 文件,文件的日期是降序排列的。你可以按照以下步骤修改你的代码来实现这个目标:
    首先,确保你已经导入了 pandas 库,因为你将使用它来保存 DataFrame 到 CSV 文件。
    然后,在你的代码中找到需要保存数据的地方,在你的例子中是在 Stock_Price_LSTM_Data_Precesing 函数中的 df 数据框。
    接着,使用 pandasto_csv 函数将数据保存为 CSV 文件,指定文件路径为 D
    盘下的一个位置,并确保日期降序排列。
    下面是修改后的代码片段:
    python
    Copy code

    import pandas as pd
    # 在 Stock_Price_LSTM_Data_Precesing 函数中添加保存数据的代码
    def Stock_Price_LSTM_Data_Precesing(df,mem_his_days,pre_days):
    # 你现有的代码...
    # 保存数据到 CSV 文件
    df.to_csv('D:/your_file_path.csv', index=False)  # 指定保存路径为 D 盘,注意修改文件路径和文件名
    return X, y, X_lately
    

    在上述代码中,你需要修改 to_csv 函数中的文件路径为你希望保存的位置,并确保文件名以 .csv 结尾。index=False 参数表示不保存行索引到 CSV 文件中。
    通过这样的修改,你的数据将会保存为 CSV 文件,并且日期会按照降序排列。记得在保存数据前创建好 D 盘下的文件夹(如果不存在的话)以确保文件保存成功。
    希望这个解决方案对你有所帮助!

    如果该回答解决了您的问题,请采纳!如果没有,请私信联系或评论您的疑惑

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 5月12日
  • 已采纳回答 5月4日
  • 创建了问题 5月1日