如何获取AM/PM格式小时时间并生成指定结构CSV文件?
解决方案
你可以直接利用 pandas 的 dt 访问器和字符串格式化方法,一步生成符合要求的格式,不用拆分多个 DataFrame,代码更简洁高效:
import pandas as pd # 生成2021年全年每小时的时间序列 arr = pd.date_range(start='1/1/2021', end='12/31/2021 23:00:00', freq='h') # 构造目标格式的DataFrame df = pd.DataFrame({ 'day': arr.day, 'month': arr.month, 'year': arr.year, 'hour': arr.strftime('%I %p') # 转换为12小时制+AM/PM格式 }) # 导出为CSV,不包含索引列 df.to_csv('hourly_time.csv', index=False)
关键说明:
strftime('%I %p')是核心:%I会把24小时制转为12小时制(带前导零,比如01、12),%p自动添加AM/PM标识(上午为AM,下午为PM)。- 如果不需要小时的前导零(比如想要
1 PM而非01 PM),可以把格式符改成%l %p,再去掉多余空格:'hour': arr.strftime('%l %p').str.strip() - 直接构造单个DataFrame,列顺序完全匹配你需要的
day,month,year,hour am/pm格式,导出CSV时用index=False避免写入无用的索引列。
内容的提问来源于stack exchange,提问作者helloitsmontie
相关产品推荐
相关产品推荐

