python - 使用定义的参数创建新列的函数
问题描述
问题是我想不出从上个月的最后一天获得“标记”的方法。因为我需要比较当前月份和上个月是每天生成的一个数字,Mark_LastDayData 以当月最后一天的标记为参考,并在当月的所有值中替换它。'Mark_LastDayDate_PreviousMonth' 4 这就像从上个月获得'Mark_LastDayData',所以我可以在未来进行比较
我有以下 DF
import pandas as pd
from pandas.tseries.offsets import BMonthEnd
import datetime as dt
df = pd.DataFrame({'Found':['A','A','A','A','A','B','B','B'],
'Date':['14/10/2021','19/10/2021','29/10/2021','30/09/2021','20/09/2021','20/10/2021','29/10/2021','15/10/2021'],
#'LastDayMonth':['29/10/2021','29/10/2021','29/10/2021','30/09/2021','30/09/2021','29/10/2021','29/10/2021','29/10/2021'],
'Mark':[1,2,3,4,3,1,2,3]
})
print(df)
**LastDayMonth 是通过代码获得的 我对日期做了一些更改
df['Date'] = pd.to_datetime(df['Date'])
df['Date'] = pd.to_datetime(df['Date'], format = '%Y/%m/%d')
df['LastDayDate'] = pd.to_datetime(df['Date']) + BMonthEnd(0)
df['LastDayDatePrevMonth'] = pd.to_datetime(df['Date']) - pd.DateOffset(months=1)
我需要每个日期当月最后一天的“标记”,所以我使用了该方法
df = df.merge(df.loc[df['Date'] == df['LastDayDate'], ['Found','LastDayDate','Mark']],
on=['Found', 'LastDayDate'],
how='left', suffixes=['', '_LastDayDate'])
如何执行此操作以在同一列中获取上个月最后一天的“标记”
我手动填写的示例df
解决方案
推荐阅读
- excel - 如何在群组中查找最近的日期
- generics - 收集到 Vec 与 &Vec
- swift - Swift 5.1 中的 Property Wrapper 编译错误
- angular - 如何在 Angular 中使用“chartjs-chart-graph”(强制有向图)?
- f# - 您如何使用 F# 获得“我的文档”的确切路径
- sendgrid - 无法打开文件附件
- symfony - Symfony 4.4 表单多选引导程序
- excel - 在 VBA 中复制整行时是否可以排除某些列?
- flutter - listview onTap 动画所有按钮问题:Flutter
- c# - 在 .Net Core (c#) 应用程序中设置外部依赖项