【问题标题】:How to create a time matrix full of NaT in python?如何在python中创建一个充满NaT的时间矩阵?
【发布时间】:2021-05-05 15:13:48
【问题描述】:

我想创建一个空的 3D 时间矩阵(大小已知),稍后我将使用 pd.dateTimeIndex 或 pd.timestamp 列表填充到循环中。有没有简单的方法?

这不起作用:

timeMatrix = np.empty( shape=(100, 1000, 2) )
timeMatrix[:] = pd.NaT

我可以不用第二行,但 timeMatrix 中的数字变成 10^18 个数字。

timeMatrix = np.empty( shape=(100, 1000, 2) )
for pressureLevel in levels:
    timeMatrix[ i_airport, 0:varyingNumberBelow1000, pressureLevel ] = dates_datetimeindex

谢谢

【问题讨论】:

    标签: python pandas datetimeindex


    【解决方案1】:
    df = pd.DataFrame(index=range(10), columns=range(10), dtype="datetime64[ns]")
    print(df)
    

    打印:

        0   1   2   3   4   5   6   7   8   9
    0 NaT NaT NaT NaT NaT NaT NaT NaT NaT NaT
    1 NaT NaT NaT NaT NaT NaT NaT NaT NaT NaT
    2 NaT NaT NaT NaT NaT NaT NaT NaT NaT NaT
    3 NaT NaT NaT NaT NaT NaT NaT NaT NaT NaT
    4 NaT NaT NaT NaT NaT NaT NaT NaT NaT NaT
    5 NaT NaT NaT NaT NaT NaT NaT NaT NaT NaT
    6 NaT NaT NaT NaT NaT NaT NaT NaT NaT NaT
    7 NaT NaT NaT NaT NaT NaT NaT NaT NaT NaT
    8 NaT NaT NaT NaT NaT NaT NaT NaT NaT NaT
    9 NaT NaT NaT NaT NaT NaT NaT NaT NaT NaT
    

    【讨论】:

    • 谢谢。它不是 3D 矩阵,我不确定是否可以使用数据框到达它,但是通过您的回答,我意识到将 dtype="datetime64[ns]" 添加到我的矩阵创建中会使我接近我想要的。我只有 1970 日期作为空日期而不是 NaT。我想我可以应付。
    • 要完成答案,将 1970 年日期设为 NaT 的代码是: timeMatrix[timeMatrix == np.datetime64('1970-01-01T00:00:00.000000000') ] = np.datetime64 (“NaT”)谢谢你的提示:-)
    猜你喜欢
    • 1970-01-01
    • 2017-05-22
    • 2019-07-23
    • 2019-03-23
    • 1970-01-01
    • 1970-01-01
    • 2021-11-16
    • 2017-10-26
    • 1970-01-01
    相关资源
    最近更新 更多