Вот решение IFrame, которое работает для IE и Chrome:
function printHTML(htmlString) {
var newIframe = document.createElement('iframe');
newIframe.width = '1px';
newIframe.height = '1px';
newIframe.src = 'about:blank';
// for IE wait for the IFrame to load so we can access contentWindow.document.body
newIframe.onload = function() {
var script_tag = newIframe.contentWindow.document.createElement("script");
script_tag.type = "text/javascript";
var script = newIframe.contentWindow.document.createTextNode('function Print(){ window.focus(); window.print(); }');
script_tag.appendChild(script);
newIframe.contentWindow.document.body.innerHTML = htmlString;
newIframe.contentWindow.document.body.appendChild(script_tag);
// for chrome, a timeout for loading large amounts of content
setTimeout(function() {
newIframe.contentWindow.Print();
newIframe.contentWindow.document.body.removeChild(script_tag);
newIframe.parentElement.removeChild(newIframe);
}, 200);
};
document.body.appendChild(newIframe);
}
Вы можете использовать базовое форматирование строки -
>>> '{:.15f}'.format(df.loc[0,'me'])
>>> '0.094092328767113'
Это приведет к типу данных строки. Кроме того, вы можете преобразовать его в float, если вам нужно использовать numpy
as -
>>> np.float64('{:.15f}'.format(df.loc[0,'me']))
>>> 0.094092328767113
. Финальное исправление сводится к обновлению версий Pandas и NumPy, что подтверждается OP в комментариях. .