我有一个大约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或类似解决方案将其拆分为更多硬件,因为这是一个企业环境。如何让这段代码更快地运行?
答案 0 :(得分:1)
我认为可以通过.loc
data.loc[data['holiday']==1,'settle'] += pd.tseries.offsets.BDay(1)