import pandas as pd import pymysql def get_stock_data(table_name, db_config): """ 从数据库中读取指定股票的数据并进行格式转换和清洗。 :param table_name: 数据表名称 :param db_config: 数据库配置信息,包含 host, port, user, password, database :return: 清洗后的 Pandas DataFrame """ try: # 连接数据库 connection = pymysql.connect( host=db_config['host'], port=db_config['port'], user=db_config['user'], password=db_config['password'], database=db_config['database'] ) print(f"开始读取表:{table_name}") # 查询数据 query = f"SELECT time, open_back, high_back, low_back, close_back, volume_back FROM `{table_name}`" df = pd.read_sql(query, connection) # 读取数据到 DataFrame,注意数据库连接方式 connection.close() if df.empty: print(f"{table_name} 数据为空") return pd.DataFrame() # 格式转换和清洗 df.rename(columns={ 'time': 'Date', 'high_back': 'High', 'low_back': 'Low', 'open_back': 'Open', 'close_back': 'Close', 'volume_back': 'Volume' }, inplace=True) df['Date'] = pd.to_datetime(df['Date']) print(f"完成数据清洗:{table_name}") print(df.head()) return df except Exception as e: print(f"读取 {table_name} 数据失败:{e}") return pd.DataFrame()