Python 数据帧输出的纳秒精度

Python 数据帧输出的纳秒精度,python,pandas,numpy,Python,Pandas,Numpy,DataFrame的HTML输出看起来是将timedelta64对象格式化为微秒精度,即小数点后6位 如何将其精度提高到纳秒级,小数点后9位 编辑:上图中的源代码: from pandas import DataFrame from numpy import timedelta64 DataFrame([ dict(delta=timedelta64(1234, 'ns')), dict(delta=timedelta64(56789, 'ns')) ]) <Jupyt

DataFrame的HTML输出看起来是将timedelta64对象格式化为微秒精度,即小数点后6位

如何将其精度提高到纳秒级,小数点后9位

编辑:上图中的源代码:

from pandas import DataFrame
from numpy import timedelta64

DataFrame([
    dict(delta=timedelta64(1234, 'ns')),
    dict(delta=timedelta64(56789, 'ns'))
])

<Jupyter html table showing two times, each with the nanoseconds portion truncated>

这只是一个显示问题。全精度存储在数据帧中。通过查看行的np数组表示形式,可以显示精确的值:

df.delta.values
您可以调用DataFrame.style.format并手动将timedelta64对象转换为纳秒:

(
    DataFrame([
        dict(delta=np.timedelta64(1234, 'ns')),
        dict(delta=np.timedelta64(56789, 'ns'))
    ])
    .style.format(dict(delta=lambda td: td / np.timedelta64(1, 'ns')))
)

    delta
0  1234.0
1 56789.0

这只是一种表示法——如果您想将其保存到文件中——它将被正确存储:df.to_csvr'/path/to/out.csv',index=false目的可能是能够在笔记本中显示它,而不必写入文件