如何在Pandas中提取单元格前3字符创建列并实现日期排序
嘿,我来帮你一步步搞定这个需求!
处理日期列、提取月份并排序的完整方案
第一步:提取日期列的前3个字符作为月份缩写
你的date列是字符串格式(比如"Jul 31, 2014"),直接用Pandas的字符串切片就能轻松拿到前3个字符:import pandas as pd # 假设你的数据集名为df df['MONTH_ABBR'] = df['date'].str[:3]执行后会生成新列
MONTH_ABBR,里面存的就是"Jul"、"Sep"这类月份缩写。第二步:将月份缩写转换为整数类型
用你提到的方法,把缩写转成1-12的整数月份:df['MONTH_NUM'] = pd.to_datetime(df['MONTH_ABBR'], format='%b').dt.month这里的
%b是Pandas识别英文月份缩写的格式符,刚好匹配你数据里的月份格式。第三步:按日期索引排序
最后我们把原date列转成datetime类型,再完成排序:
方法一:设置日期为索引后排序# 先将date列转为datetime类型 df['date'] = pd.to_datetime(df['date']) # 设置为索引并排序 df = df.set_index('date').sort_index()方法二:直接按date列排序(不设置索引)
df['date'] = pd.to_datetime(df['date']) df = df.sort_values('date')
如果想更精简,还可以把提取缩写和转整数合并成一步,不用单独生成MONTH_ABBR列:
df['MONTH_NUM'] = pd.to_datetime(df['date'].str[:3], format='%b').dt.month
这样整个流程就走完啦,既提取了月份、转成了整数,还完成了按日期排序的需求~
内容的提问来源于stack exchange,提问作者Ksenia
相关产品推荐
相关产品推荐

