#假设A列和B列都是用逗号分隔的字符串,C列为包含日期的一个字符串,
#以下函数对B列做筛选后,找到匹配的A列的最大值,用A列的最大值与C列的日期取月份差
def ColumnMapping(x,y,z):
list1=list(x.split(','))
list2=list(y.split(','))
list_merge=list(zip(list1,list2))
max_month=max([j[0] for j in list_merge if j[1] in [1,2]])#对y列的值做筛选,取对应的x列的最大值
result=(int(z[0:4])-int(max_month[0:4]))*12+int(z[4:6])-int(max_month[5:7) #取月份差
return result
#以下函数取A列中数字的最大值
import re
def str_max(x):
if len(re.sub("\D","",x)==0: #替换非数字为空
return 0
else:
return int(max(list(re.sub("\D","",x)))
#以下函数计算两列数据的日期差
def date_days(x,y)
x=pd.to_datetime(x,formate='%Y/%m/%d')
y=pd.to_datetime(y,formate='%Y/%m/%d')
date_dif=(x-y).days
return date_dif
PYTHON_两列字符串对应匹配
最新推荐文章于 2024-07-09 21:36:08 发布