如何修复pandas日期列计算触发PerformanceWarning性能警告的问题
问题原因
这个性能警告的根源是你当前的date_column1和date_column2都是object数据类型,没有转为pandas原生的datetime64时间类型。做时间差、时间加减运算时,pandas无法调用高效的矢量化运算接口,只能逐元素处理,所以会弹出性能提示。
解决方法
方案1(推荐):先转换原列类型,后续所有时间操作都可复用
先将两列日期转为datetime64类型,再执行原有计算逻辑即可:
import pandas as pd # 转换两列为pandas datetime类型 DF['date_column1'] = pd.to_datetime(DF['date_column1']) DF['date_column2'] = pd.to_datetime(DF['date_column2']) # 执行原有计算,无警告且运算速度大幅提升 DF['date_new'] = DF['date_column2'] + (DF['date_column2'] - DF['date_column1'])
方案2:不修改原列类型,计算时临时转换
如果不想改动原DataFrame的列数据类型,可以临时生成转换后的序列做计算:
import pandas as pd col1 = pd.to_datetime(DF['date_column1']) col2 = pd.to_datetime(DF['date_column2']) DF['date_new'] = col2 + (col2 - col1)
内容的提问来源于stack exchange,提问作者nba2020
相关产品推荐
相关产品推荐

