在pandas数据框列中查找特定模式

2024-04-20 12:57:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在pandas dataframe列中找到一个特定的模式,并返回相应的索引值以对dataframe进行子集。

下面是一个可能模式的示例数据帧:

生成数据帧的片段:

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-102017-07-12,这就是我想结束的:

所需输出:

2017-07-10   100    91
2017-07-11    90   107
2017-07-12   105    99

如果同一个模式出现了几次,我想用同样的方式对数据帧进行子集,并计算出该模式出现了多少次,但我希望只要我把第一步整理好,这样做会更直接。

谢谢你的建议!


Tags: columns数据importdataframepandasdfasnp