python_根据年份生成对应的项
import pandas as pd
from datetime import datetime
# 假设df是你的数据框
df = pd.DataFrame({
'A': ['2025年', '2024年', '2023年', '2022年', '2021年', '2020年', '2019年', '2018年', '2017年'],
'B': [None] * 9
})
# 获取当前日期
now = datetime.now()
# 将'A'列的日期转换为datetime格式
df['A'] = pd.to_datetime(df['A'], format='%Y年')
# 遍历每一行
for i in range(len(df)):
# 计算当前行的日期与当前日期之间的年份差
year_diff = now.year - df.loc[i, 'A'].year
# 根据年份差设置'B'列的值
if year_diff <= 2:
df.loc[i, 'B'] = '1Y'
elif year_diff <= 4:
df.loc[i, 'B'] = '3Y'
elif year_diff == 5:
df.loc[i, 'B'] = '5Y'
else:
df.loc[i, 'B'] = 'MAX'
df['A'] = df['A'].dt.year
# 将A列转换为字符串并设置为索引
df['A'] = df['A'].astype(str)
df.set_index('A', inplace=True)
# 将DataFrame转换为字典
dictionary = df['B'].to_dict()
print(dictionary)
结果:
如果只有一个日期的话,例如"2017/01/01",返回对应的年份期间,例如返回:MAX
from datetime import datetime
text1="2017/01/01"
年份期间=""
# 获取当前日期
now = datetime.now()
# 将文本日期转换为datetime对象
date1 = datetime.strptime(text1, "%Y/%m/%d")
# 计算年份差
year_diff = now.year - date1.year
if year_diff <= 2:
年份期间="1Y"
elif year_diff <= 4:
年份期间="3Y"
elif year_diff == 5:
年份期间="5Y"
else:
年份期间="MAX"
print(年份期间)