python - 计算高效的日期加法 (Python)

标签 python pandas

我有一个包含约 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/

相关文章:

python - 返回新数据框中的第一个匹配值/列名

Python 数据帧时间增量

python - 在 Python 中,None 的计算结果小于零?

python - Pandas:将函数应用于每对列

python - 如何检查一个字符是否在二维数组中,然后打印相应的值

python - 如何在Python中的列表的每个元素中添加常量字符串?

python - 使用欧氏距离或类似距离的pyspark中的最近邻居

python - 无法在 Python 3 中从 G Suite 获取用户

python - 使用列和行索引向量化函数

python - 在 Pandas 中列出月份和年份