如何从pandas datetime数据中提取日期时分并拼接整数变量
最优实现方案
直接使用pandas原生向量化的datetime访问器操作实现,性能最高、代码最简洁,无需遍历每行数据。
前提假设
- 你的DataFrame变量名为
df - 存储datetime类型数据的列名为
datetime_col - 待拼接的整数变量为
int_variable = 7
完整代码
import pandas as pd # 可选步骤:如果你的时间列还不是datetime类型,先执行转换 df['datetime_col'] = pd.to_datetime(df['datetime_col']) # 生成符合要求的新列,结果为字符串类型 int_variable = 7 df['new_col'] = df['datetime_col'].dt.strftime('%Y%m%d%H%M') + str(int_variable) # 如果你需要最终结果为整数类型,加一步类型转换即可 # df['new_col'] = df['new_col'].astype('int64')
代码说明
dt.strftime('%Y%m%d%H%M')直接将datetime格式化为指定规则的字符串:%Y对应4位年份、%m对应2位月份(不足补前导零)、%d对应2位日期、%H对应2位24制小时、%M对应2位分钟,完全符合你需要的201710251011格式要求。- 直接拼接整数变量的字符串形式即可,整个操作是向量化执行,处理百万级数据的速度比自定义apply函数快10倍以上。
效果验证
用你给出的示例时间测试:
输入时间:pd.Timestamp('2017-10-25 10:11:12.002000+00:00')
执行后得到的new_col值为2017102510117,完全符合需求。
内容的提问来源于stack exchange,提问作者Adler Müller
相关产品推荐
相关产品推荐

