DataFrame输出中的纳秒精度

时间:2018-05-10 12:34:52

标签: python pandas numpy

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

DataFrame showing times to microsecond precision

如何将其增加到纳秒精度,小数点后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>

2 个答案:

答案 0 :(得分:1)

您可以调用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

答案 1 :(得分:0)

这只是一个显示问题。完整精度存储在数据框中。您可以通过查看行的np数组表示来显示确切的值:

df.delta.values