首页 > 解决方案 > 基于列的熊猫数据框中的计数器/索引

问题描述

我有以下数据框:

df
Date Application Weekday
02.01 A           3
02.01 B           3
03.01 A           4
03.01 B           4
04.01 A           5
04.01 B           5
05.01 A           6
05.01 B           6

我想过滤掉工作日:5,6 并希望有一个基于日期的新索引,这意味着我想得到:

df
Date Application Weekday Index
02.01 A           3        1
02.01 B           3        1 
03.01 A           4        2
03.01 B           4        2

我怎么能得到那个?

标签: pythonpandas

解决方案


使用boolean indexing和创建新列DataFrame.assignfactorizelambda 函数是处理过滤数据所必需的:

df = df[df['Weekday'].lt(5)].assign(Index = lambda x: pd.factorize(x['Date'])[0] + 1)
print (df)
   Date Application  Weekday  Index
0  2.01           A        3      1
1  2.01           B        3      1
2  3.01           A        4      2
3  3.01           B        4      2

推荐阅读