Python 数据帧输出的纳秒精度
DataFrame的HTML输出看起来是将timedelta64对象格式化为微秒精度,即小数点后6位 如何将其精度提高到纳秒级,小数点后9位 编辑:上图中的源代码: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
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目的可能是能够在笔记本中显示它,而不必写入文件