Python遍历行并计算一对唯一的列显示了多少次
我试图添加一列来计算某个站点的日期(否)显示了多少次 例如,2013年12月6日的No1仅显示1条记录,因此将其计为1。2013年11月5日第3号有3项记录。第一次出现应计为1,第二次出现应计为2,依此类推,第三次出现应计为3 输入:Python遍历行并计算一对唯一的列显示了多少次,python,pandas,Python,Pandas,我试图添加一列来计算某个站点的日期(否)显示了多少次 例如,2013年12月6日的No1仅显示1条记录,因此将其计为1。2013年11月5日第3号有3项记录。第一次出现应计为1,第二次出现应计为2,依此类推,第三次出现应计为3 输入: No Date Value 0 1 6/12/2013 35 1 1 6/13/2013 45 2 1 6/14/2013 23 3 1 6/14/2013 40 4
No Date Value
0 1 6/12/2013 35
1 1 6/13/2013 45
2 1 6/14/2013 23
3 1 6/14/2013 40
4 2 6/12/2013 15
5 2 6/13/2013 20
6 2 6/14/2013 24
7 2 7/23/2013 33
8 3 5/11/2013 10
9 3 5/11/2013 11
10 3 5/11/2013 34
11 3 5/18/2013 24
.
.
.
结果应该如下所示:
No Date Value count
0 1 6/12/2013 35 1
1 1 6/13/2013 45 1
2 1 6/14/2013 23 1
3 1 6/14/2013 40 2
4 2 6/12/2013 15 1
5 2 6/13/2013 20 1
6 2 6/14/2013 24 1
7 2 7/23/2013 33 1
8 3 5/11/2013 10 1
9 3 5/11/2013 11 2
10 3 5/11/2013 34 3
11 3 5/18/2013 24 1
.
.
.
我自己的解决办法是
result = []
for n in df['No'].unique():
df1 = df[df['No'] == n]
for date in df1['Date'].unique():
df2 = df1[df1['Date'] == date]
df2['count'] = np.arange(len(df2)) + 1
result.append(df2)
并将结果合并在一起。但是它运行得很慢。有更好的解决方案吗?执行以下操作并使用:
添加1是必需的,因为cumcount
从0开始
结果输出:
No Date Value count
0 1 6/12/2013 35 1
1 1 6/13/2013 45 1
2 1 6/14/2013 23 1
3 1 6/14/2013 40 2
4 2 6/12/2013 15 1
5 2 6/13/2013 20 1
6 2 6/14/2013 24 1
7 2 7/23/2013 33 1
8 3 5/11/2013 10 1
9 3 5/11/2013 11 2
10 3 5/11/2013 34 3
11 3 5/18/2013 24 1
No Date Value count
0 1 6/12/2013 35 1
1 1 6/13/2013 45 1
2 1 6/14/2013 23 1
3 1 6/14/2013 40 2
4 2 6/12/2013 15 1
5 2 6/13/2013 20 1
6 2 6/14/2013 24 1
7 2 7/23/2013 33 1
8 3 5/11/2013 10 1
9 3 5/11/2013 11 2
10 3 5/11/2013 34 3
11 3 5/18/2013 24 1