我现在需要处理一下临床信息,其中有一列名为样本号(如第一个表),前8位是日期,其中前四位是年,后四位月日。需要增加三列,一列为年,一年为月日,一列为春夏秋冬,其中3,4,5月为春,6,7,8月为夏,9,10,11月为秋,12,1,2月为冬。这样的话,临床样本的分类就更清晰了。

(图片来源网络,侵删)
样本号 |
20211111********* |
20211220******** |
20220705********* |
IMPort pandas as pd
# 读取 xlsx 文件

(图片来源网络,侵删)
df = pd.read_exCel('your.xlsx')
df['样本号'] = df['样本号'].astype(str)
# 添加年列和月日列
df['年'] = df['样本号'].str[:4]
df['月日'] = df['样本号'].str[4:8]
# 提取月份并转换为整数
df['月'] = df['月日'].str[0:2].astype(int)
# 添加季节列
def get_season(month):
if month in [3, 4, 5]:
return '春'
elif month in [6, 7, 8]:
return '夏'
elif month in [9, 10, 11]:
return '秋'
else:
return '冬'
df['季节'] = df['月'].apply(get_season)
df.to_excel("out.xlsx")
最终结果如下表所示。
样本号 | 年 | 月日 | 月 | 季节 |
20231119***** | 2023 | 1119 | 11 | 秋 |
20240118****** | 2024 | 0118 | 1 | 冬 |
20231206****** | 2023 | 1206 | 12 | 冬 |