J'ai des données de une minute:
minute_diff = data.diff() dail_diff = data.resample('D').last().diff().median() # here remove rows from data were minute_diff is grater than daily diff
3 Réponses :
minute_diff = data.diff().reset_index() dail_diff = data.resample('D').last().diff().median() cols = minute_diff.columns.to_list() cols.remove('Datetime') for c in cols: minute_diff = minute_diff[(minute_diff[c] <= dail_diff[c])|(minute_diff[c].isnull())] data = data.loc[minute_diff['Datetime']]
Je vous ai confondu avec mon code peut-être. Il devrait tester si une minute diff est supérieure à la différence quotidienne pour une journée spécifique. Donc, Diff Diff est le vecteur des dates.
import pandas as pd # Import data import yfinance as yf data = yf.download(tickers="MSFT", period="7d", interval="1m") data_minute = data.copy() data_minute['Date'] = data_minute.index.astype('datetime64[ns]') data_minute['Date'] = data_minute['Date'].dt.normalize() #Create new column for difference of current close minus previous close data_minute['Minute Close Difference'] = data_minute['Close'] - data_minute['Close'].shift(1) #Convert minute data to daily data data_daily = data_minute.resample('D').agg({'Open':'first', 'High':'max', 'Low':'min', 'Close':'last', 'Adj Close':'last', 'Volume':'sum' }) data_daily['Date'] = data_daily.index.astype('datetime64[ns]') data_daily['Date'] = data_daily['Date'].dt.normalize() data_daily = data_daily.set_index('Date') #Create new column for difference of current close minus previous close data_daily['Daily Close Difference'] = data_daily['Close'] - data_daily['Close'].shift(1) data_minute = pd.merge(data_minute,data_daily['Daily Close Difference'],how = 'left', left_on = 'Date', right_index = True) data_minute = data_minute[data_minute['Minute Close Difference'].abs() <= data_minute['Daily Close Difference'].abs()] data_minute
La différence est la différence entre la valeur du cront et du retard. De plus, le dernier filtre ne doit conserve que des observations dans lesquelles des dégerces sont inférieures à l'absolue de la dégerence quotidienne. NAD Il devrait être appliqué sur toutes les colonnes.
J'ai trouvé la solution: