我想添加一个称为count的新列,该列对no进行计数。每个ID的条目数少于日期。 这就是我的数据框的样子
date ID count
20191101 1 1<br>
20191102 2 0<br>
20191030 1 0<br>
20191103 2 1<br>
20191105 2 2<br>
20191030 1 0<br>
我的数据框有15列和9万行
答案 0 :(得分:0)
IIUC,排序和总和就是您所需要的
df = df.sort_values(by='date')
df1 = df.groupby(['ID', 'date'], as_index=False)['count'].sum()
df1['cumulative_count'] = df1.groupby('ID', as_index=False)['count'].cumsum()
df1
ID date count cumulative_count
0 1 20191030 0 0
1 1 20191101 1 1
2 2 20191102 0 0
3 2 20191103 1 1
4 2 20191105 2 3
答案 1 :(得分:0)
类似这样的东西:
import pandas as pd
df = df.sort_values(by=['ID','date'])
df['count'] = 1
df['cumsum'] = df.groupby('ID')['count'].transform('cumsum')
df['final'] = df['cumsum'] - 1
date ID count cumsum final
2 20191030 1 1 1 0
5 20191030 1 1 2 1
0 20191101 1 1 3 2
1 20191102 2 1 1 0
3 20191103 2 1 2 1
4 20191105 2 1 3 2
final
是您需要的列,其余只是可以丢弃的帮助器列