首页 > 解决方案 > 使用定义的参数python创建新列的函数

问题描述

我有这个 DF

在此处输入图像描述

如何在其他列中获取上个月最后一天的“标记”

我手动填写的示例df

在此处输入图像描述

import pandas as pd


df = pd.DataFrame({'Found':['A','A','A','A','A','B','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','10/09/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','30/09/2021'],
       'Mark':[1,2,3,4,3,1,2,3,2]

      })
df

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['LastDayDatePrev'] = pd.to_datetime(df['Date']) - pd.DateOffset(months=1)

mark_last_day = df.loc[df.apply(lambda x: x['Date']==x['LastDayMonth'], 1)]


   df = df.merge(df.loc[df['Date'] == df['LastDayDate'], ['Found','LastDayDate','Mark']],
     on=['Found', 'LastDayDate'],
     how='left', suffixes=['', '_LastDayDate'])

我添加了一个实际示例。

在此处输入图像描述

标签: pythondataframedatetime

解决方案


推荐阅读