我一直在尝试将我的 Pandas DataFrame 日期索引延长 25 个工作日。我编写的以下测试示例演示了该问题。正在正确生成工作日,但是,它们没有附加到 DataFrame。
import pandas as pd
from business_calendar import Calendar
dates = pd.date_range('20190121', periods=5)
df = pd.DataFrame({'high': (58.22, 57.93, 57.51, 57.89, 58.77), 'low': (57.65, 57.15, 56.98, 57.12, 58.00)}, index=dates)
cal = Calendar()
last_idx = df.index[-1].date()
for i in range(1, 26):
weekdays = pd.DatetimeIndex([cal.addbusdays(last_idx, i)])
print("idx_count: {:2d} idx: {}".format(i, weekdays))
df.index.append(weekdays)
print(df.index)
代码以错误级别 0 退出,知道为什么 DataFrame 没有按预期更新吗?
最佳答案
您正在尝试以工作日为索引向 Dataframe 添加行,因此一种简单的方法是
for i in range(1, 26):
weekdays = pd.DatetimeIndex([cal.addbusdays(last_idx, i)])
#If you want the values to be na
newRow = pd.DataFrame(index=weekdays)
#Or if you want to give values to the new rows
newRow = pd.DataFrame({'high': (42), 'low': (0)}, index=weekdays)
df = df.append(newRow)
del newRow
print(df.index)
关于python - 将 pandas DataFrame DatetimeIndex 延长 25 个工作日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54420549/