你的代码中出现了错误,因为 numpy.random.randint
生成的是 numpy.int32
类型的数据,而 pandas.DateOffset
需要的是 Python 的内置 int
类型。你可以通过在 numpy.random.randint
生成的数据上调用 tolist()
方法将其转换为 Python 的内置 int
类型来解决这个问题。以下是修改后的代码:
import pandas as pd
import numpy as np
def main():
ts = pd.Timestamp.now() - pd.DateOffset(days=10)
random_hours = np.random.randint(0, 240, size=2).tolist()
ser = pd.Series(ts + pd.DateOffset(hours=i) for i in random_hours)
print(ser.tolist())
if __name__ == "__main__":
main()
在这个修改后的代码中,random_hours = np.random.randint(0, 240, size=2).tolist()
这行代码将 numpy.int32
类型的数据转换为了 Python 的内置 int
类型,从而解决了 TypeError: unsupported type for timedelta hours component: numpy.int32
这个错误。希望这个解答对你有所帮助!