[英]How to get rows having DatetimeIndex within time interval in pandas table?
[英]How to get random samples of data within a defined interval of time in SQL
所以我做了一個sql查詢,在固定的時間間隔內返回一組隨機數據。 到目前為止,我能夠讓它在幾小時或幾天內工作。 但我不知道如何讓它在 X 小時或 X 分鍾內工作。
這是我的代碼:
def getSampleSQL_trades(self, symbol, interval=None, n_samples=5):
query = "SELECT a, price, qty, time, Temp_Main.time_group " \
"FROM " \
"(SELECT a, price, qty, time, TIMESTAMPDIFF(hour, min_time, time) as time_group " \
"FROM {symbol}_trades," \
"(SELECT MIN(time) as min_time " \
"FROM {symbol}_trades) Temp) Temp_Main " \
"INNER JOIN" \
"(SELECT TIMESTAMPDIFF(hour, min_time, time) as time_group " \
"FROM {symbol}_trades, " \
"(SELECT MIN(time) as min_time " \
"FROM {symbol}_trades) Temp " \
"GROUP BY time_group " \
"ORDER BY RAND() " \
"LIMIT {n_s}) Temp2 " \
"ON Temp2.time_group = Temp_Main.time_group " \
"ORDER BY Temp_Main.time_group".format(symbol = symbol, n_s = n_samples)
self.connect()
df = pd.read_sql(sql=query, con=self.engine, index_col='a', parse_dates=['time'], columns=['time','price','qty'])
self.disconnect()
return df
是否可以選擇以秒為單位的間隔? 就像 param interval= 5 * (60)
然后在 5 分鍾的間隔內對數據進行分組。
我找到了我正在尋找的解決方案,我使用了TRUNCATE
TRUNCATE(TIMESTAMPDIFF('Insert_Unit_here', time, new_time)/x, 0)
其中 x 是單位值,因此對於 5 分鍾間隔,它應該如下所示:
TRUNCATE(TIMESTAMPDIFF(MINUTE, time_1, time_2)/5, 0)
干杯,
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.