【发布时间】:2018-02-22 06:25:00
【问题描述】:
我有一个如下所示的数据框:
dff = pd.DataFrame({'month': ['1','1','1','1','2','2','2','2','3','3'],
'sym': ['abc','pqr','xyz','lmn','abc','pqr','xyz','lmn','aaa','bbb'],
'count': ['10','14','25','20','34','23','43','34','10','20']})
dff = dff[['sym','month','count']]
print dff
sym month count
0 abc 1 10
1 pqr 1 14
2 xyz 1 25
3 lmn 1 20
4 abc 2 34
5 pqr 2 23
6 xyz 2 43
7 lmn 2 34
8 aaa 3 10
9 bbb 3 20
我想为这个名为“prev_count”的数据框创建新列。要创建这个新列“prev_count”,需要遵循以下规则:
- 如果上个月在特定组中不可用,则“prev_count”值应为 0。
- 如果上个月在特定组中可用,则上个月计数值应为“prev_count”的值。
我用下面的 groupby 函数试过了:
def f(df):
print df
return ""
dff['pre_count'] = dff.groupby('sym').apply(f)
但我无法理解如何保持上个月的跟踪计数值。他们是否有任何熊猫方式对数据进行此类操作?
预期输出:
sym month count prev_count
0 abc 1 10 0
1 pqr 1 14 0
2 xyz 1 25 0
3 lmn 1 20 0
4 abc 2 34 10
5 pqr 2 23 14
6 xyz 2 43 25
7 lmn 2 34 20
8 aaa 3 10 0
9 bbb 3 20 0
【问题讨论】:
-
@JohnGalt- 好的,谢谢
标签: python pandas dataframe pandas-groupby