python,按含有样本时间的列名,增加年,月,季节三列。

慈云数据 1年前 (2024-03-18) 技术支持 105 0

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

python,按含有样本时间的列名,增加年,月,季节三列。
(图片来源网络,侵删)
样本号
20211111*********
20211220********
20220705*********

IMPort pandas as pd

# 读取 xlsx 文件

python,按含有样本时间的列名,增加年,月,季节三列。
(图片来源网络,侵删)

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*****2023111911
20240118******202401181
20231206******2023120612
微信扫一扫加客服

微信扫一扫加客服