我有一个包含约 42,000,000 行和 6 列的 pandas 数据框。索引列是时间戳,并且存在 datetime64 类型的日期列(“data['settle']
”)。如果“假期”列返回“1”,我正在尝试运行以下代码以将工作日添加到日期。
for i in range(len(data['settle'])-1):
if data['holiday'].iloc[i] == 1:
data['settle'].iloc[i] = data['settle'].iloc[i] + pd.tseries.offsets.BDay(1)
else:
pass
唯一的问题是这需要很长时间才能返回任何东西(超过 30 分钟!)而且我在不错的硬件上运行它。我无法通过 spark 或类似解决方案将其拆分为更多硬件,因为这是一个企业环境。我怎样才能使这段代码运行得更快?
最佳答案
我觉得可以通过.loc
来实现
data.loc[data['holiday']==1,'settle'] += pd.tseries.offsets.BDay(1)
关于python - 计算高效的日期加法 (Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49138499/