0
votes

Supprimer des informations sur les données de la série chronologique à l'aide de Pandas

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


0 commentaires

3 Réponses :


0
votes
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']]

1 commentaires

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.



0
votes
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

1 commentaires

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.



0
votes

J'ai trouvé la solution: xxx


0 commentaires