I would like to find a specific template in the dataframe pandas column and return the corresponding index values ββfor a subset of the data.
Here's a sample data frame with a possible template:
A fragment for creating a data frame:
import pandas as pd
import numpy as np
Observations = 10
Columns = 2
np.random.seed(123)
df = pd.DataFrame(np.random.randint(90,110,size=(Observations, Columns)),
columns = ['ColA','ColB'])
datelist = pd.date_range(pd.datetime(2017, 7, 7).strftime('%Y-%m-%d'),
periods=Observations).tolist()
df['Dates'] = datelist
df = df.set_index(['Dates'])
pattern = [100,90,105]
print(df)
Dataframe:
ColA ColB
Dates
2017-07-07 103 92
2017-07-08 92 96
2017-07-09 107 109
2017-07-10 100 91
2017-07-11 90 107
2017-07-12 105 99
2017-07-13 90 104
2017-07-14 90 105
2017-07-15 109 104
2017-07-16 94 90
Here an interesting picture takes place in Column Athe dates from 2017-07-10to 2017-07-12and what I would like to get:
Desired conclusion:
2017-07-10 100 91
2017-07-11 90 107
2017-07-12 105 99
If the same template happens several times, I would like a subset of the DataFrame in the same way, and also count how many times the template happens, but I hope it is more straight forward if I get the first step, figured it out.
Thanks for any suggestions!
source
share