我有这个df的例子
我做了一些转换,我需要得到我的马克值从上个月在一个新的列进行比较。该列应该有最大值的列'马克'根据不同的值在'id'列。
下面是一个例子的框架
df = pd.DataFrame({'date':['202301','202301','202301','202301','202302','202302','202302','202302','202303','202303','202303','202304','202304'],
'mark': [1,1,2,3,1,1,1,1,1,3,1,1,1
],
'id':[20,20,21,21,20,20,21,21,20,20,21,20,21
]})
字符串
这是我们想要的输出
date mark id mark_previous
202301 1 20 0
202301 1 20 0
202301 2 21 0
202301 3 21 0
202302 1 20 1
202302 1 20 1
202302 1 21 3
202302 1 21 3
202303 1 20 1
202303 3 20 1
202303 1 21 1
202304 1 20 3
202304 1 21 1
型
你有什么建议,以获得该栏?
最好的问候!
2条答案
按热度按时间fkvaft9z1#
验证码
字符串
df:
型
中级
型
:
2izufjch2#
您可以通过以下步骤实现您正在寻找的内容:
将日期转换为日期时间格式,例如
字符串
按“id”和“date”对DataFrame进行排序
型
按“id”对DataFrame进行分组,并使用groupby和shift函数
型
创建和使用累计最大值
型
把东西收拾干净
型
给予这个试试!
来源:我的文章https://ioflood.com/blog/pandas-dataframe/