python添加10个最近日期的指示符

2024-09-27 19:20:17 发布

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

我使用的是Python,我有一个团队名称和已经玩过的游戏日期的数据,它看起来像这样(除了有几百行):

      team    date
0     TOR     2016/10/15
1     LAK     2016/10/20
2     CGY     2016/11/03
3     BUF     2016/10/30
4     PIT     2016/10/27
5     CHI     2016/11/05
6     VAN     2016/10/20
7     BUF     2016/10/16
8     STL     2016/10/13
9     BUF     2016/10/29
10    MIN     2016/10/29
11    PIT     2016/11/05
12    CHI     2016/10/18
13    BOS     2016/10/29
14    PIT     2016/10/20
15    COL     2016/10/20
16    MTL     2016/10/20
17    MTL     2016/11/05
18    BOS     2016/11/03
19    EDM     2016/11/05
20    NSH     2016/11/01

我想添加指标列,以显示哪些是最近10场比赛的每一个团队,以及最近5场比赛的每一个团队。如果他们在这个组中,则为1;如果他们不在这个组中,则为0

我被难住了。任何想法都将不胜感激


Tags: 数据名称游戏date团队vanteamtor
1条回答
网友
1楼 · 发布于 2024-09-27 19:20:17

我认为您可以使用^{}^{}来通过^{}选择索引:

df.date = pd.to_datetime(df.date)
#in real data use nsmallest(10)
idx = df.groupby('team')['date'].nsmallest(2).index.get_level_values(1)
df['indicator'] = np.where(df.index.isin(idx), 1, 0)

print (df)
   team       date  indicator
0   TOR 2016-10-15          1
1   LAK 2016-10-20          1
2   CGY 2016-11-03          1
3   BUF 2016-10-30          0
4   PIT 2016-10-27          1
5   CHI 2016-11-05          1
6   VAN 2016-10-20          1
7   BUF 2016-10-16          1
8   STL 2016-10-13          1
9   BUF 2016-10-29          1
10  MIN 2016-10-29          1
11  PIT 2016-11-05          0
12  CHI 2016-10-18          1
13  BOS 2016-10-29          1
14  PIT 2016-10-20          1
15  COL 2016-10-20          1
16  MTL 2016-10-20          1
17  MTL 2016-11-05          1
18  BOS 2016-11-03          1
19  EDM 2016-11-05          1
20  NSH 2016-11-01          1

相关问题 更多 >

    热门问题