此回圈目前需要 15 分鐘以上才能運行。有沒有關于如何提高速度的工具或想法?大約有 75K 行要迭代。
我確實嘗試將它直接附加到資料框中而不是使用串列,性能是一樣的。
我基本上是在嘗試將資料框中的每個日期都設為本月的第一天。即 2021-01-19 將變成 2021-01-01
fiscal_list = []
for index, row in df.iterrows():
clean_date = df['Original Due Date'].str[:8].iloc[1] "01"
fiscal_list.append(clean_date)
df['fiscal_list'] = fiscal_list
uj5u.com熱心網友回復:
使用pd.offsets.MonthBegin():
df["fiscal_list"] = df["Original Due Date"] pd.offsets.MonthBegin(1)
uj5u.com熱心網友回復:
這應該更快:
df['date'] = pd.to_datetime(df['date'])
df['date'] -= pd.DateOffset(days=1) * (df.date.dt.day - 1)
uj5u.com熱心網友回復:
我最終只是這樣做
df['Original Due Date'] = df['Original Due Date'].str[:8] "01"
運行時間為 0.05 秒!
感謝所有回答的人
uj5u.com熱心網友回復:
另一種方式:轉換為datetime, and period,然后轉換回datetime.
df['fiscal_list'] = pd.to_datetime(pd.to_datetime(df['Original Due Date']).dt.to_period('M').astype(str))
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/392030.html
