【发布时间】:2021-10-21 04:07:41
【问题描述】:
我想在 pandas 数据框列中查找特定模式,并返回相应的索引值以便对数据框进行子集化。
这是一个带有可能模式的示例数据框:
生成数据框的片段:
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)
数据框:
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
在这里,感兴趣的模式出现在Column A 中,日期为2017-07-10 到2017-07-12,这就是我想要的结果:
期望的输出:
2017-07-10 100 91
2017-07-11 90 107
2017-07-12 105 99
如果相同的模式多次出现,我想以相同的方式对数据帧进行子集化,并计算模式出现的次数,但我希望只要我能理清第一步,这会更直接。
感谢您的任何建议!
【问题讨论】: