Evitar Notación Cientéfica al pasar un dataframe de pandas a csv

I´m trying to save a pandas df column into a csv file. I dont want numbers in scientific notation in my output file. I´ve tried to use the argument float_format inside the df_to_csv but for some reason i am getting numbers in scientific notation just for the cases with negative exponents.

The column i want to have withount scientific notation is a mix of floats and strings. I´ve tried something like this:

df.to_csv(rutacsv, index=False, mode='w', sep=';', encoding='latin-1', float_format='%.12f', decimal='.')

I´ve also tried to use setting pandas display options, df.round() and some sort of things that didn´t work for me.

thanks in advice.

¿Cómo evitar que las definiciones en cabeceras se copien en cada UdT? (Unidad de Traducción)

Tengo una función de definida en una cabecera que es llamada en la propia cabecera:

a.hpp

namespace AAAAA {  namespace {  static int init() { std::cout << __PRETTY_FUNCTION__ << '\n'; return 42; } //         ^^^^^^ <--- Definida en cabecera.  }  void f();  static int i = init(); //             ^^^^^^ <--- Llamada en cabecera. } 

La cabecera a.hpp se incluye en dos archivos:

a.cpp

#include "a.hpp" // Contiene la definición y llamada a 'init()'  #include <iostream>  namespace AAAAA {  void f() {     std::cout << __PRETTY_FUNCTION__ << " : " << i << '\n'; }  } 

main.cpp

#include "a.hpp" // Contiene la definición y llamada a 'init()' #include <iostream>  int main() {     AAAAA::f();     return 0; } 

Al ejecutar el programa obtengo la siguiente salida:

int AAAAA::(anonymous namespace)::init() int AAAAA::(anonymous namespace)::init() void AAAAA::f() : 42 

Se ha llamado dos veces a init, una desde la UdT de main y otra desde la UdT de a, esta múltiple llamada a la función se repite por cada UdT añadida en que se incluya a.hpp:

b.hpp

namespace BBBBB {  void f();  } 

b.cpp

#include "b.hpp" #include "a.hpp" // Contiene la definición y llamada a 'init()'  #include <iostream>  namespace BBBBB {  void f() {     std::cout << __PRETTY_FUNCTION__ << " : " << AAAAA::i << '\n'; }  } 

main.cpp

#include "a.hpp" #include "b.hpp"  #include <iostream>  int main() {     AAAAA::f();     BBBBB::f();     return 0; } 

La nueva salida con los cambios anteriores:

int AAAAA::(anonymous namespace)::init() int AAAAA::(anonymous namespace)::init() int AAAAA::(anonymous namespace)::init() void AAAAA::f() : 42 void BBBBB::f() : 42 

Cada UdT en que se incluya a.hpp obtiene una copia de AAAAA::i (pese a que AAAAA::i es static) por lo tanto cada una hace una llamada a init.

¿Cómo puedo evitar que se haga una copia de AAAAA::i en cada UdT y en consecuencia se llame init por cada copia de dicha variable?

Evitar Duplicidad en envio de datos AJAX

La verdad, mis conocimientos en JS y Ajax no son muy grandes y por ello recurro a ustedes. Mi problema radica en un script o funcion que envia una variable para la impresion POS. Trabajo actualmente con Datatables, Ajax, PHP y Mysql.

En mi datatables, tengo lo siguiente:

{ "sClass": "alignRight", 'data' : null, 'render': function (data, type, row, meta) {   var idv = row['id'];   var comanda = row['comanda'];   var comanda_bar = row['comanda_bar'];   var estado = row['estado'];    if (comanda === 'S' && estado === 'S' && comanda_bar === 'N'){      return '<span class="btn btn-xs btn-rounded btn-warning acciones" onClick="individual();" id="' + idv + '">IMPRIME</span>';   }else if (comanda === 'N' && estado === 'S' && comanda_bar === 'S'){      return '<span class="btn btn-xs btn-rounded btn-warning acciones" onClick="individual();" id="' + idv + '">IMPRIME</span>';   }   }   } 

Lo que hago basicamente ahi es ver hacia donde imprime dependiendo de las condicionales (si imprime ticket al bar o a la cocina).

La funcion que envia los datos es la siguiente:

function individual(){  $  (".acciones").attr('onclick','').unbind('click');  $  (document).on('click', '.acciones', function(e) {   var idv = this.id;   $  .ajax({   data: {"dato" : idv},   url: 'individual.php',   type: 'POST',   success: function (response) {   } });   e.preventDefault();   e.stopPropagation();   return false;  }); } 

Hasta ahi, todo bien. Imprime correctamente los tickets hacia el bar o cocina. El problema es que cuando imprimo mas de una vez, salen 2 impresiones, es como si quedara un contador que va incrementandose cada vez que se presiona el boton de impresion.

Alguien tiene alguna idea de que puede ser o como puede arreglarse o bien me orienten a como hacerlo? Agradezco como siempre, la ayuda que me pudisien entregar. Saludos.

Evitar el chequeo de cuotas en los emails salientes de postfix

estoy montando un sistema de cuotas mediante postfix/dovecot, dovecot está configurado siguiendo esta guía: https://wiki2.dovecot.org/Quota

Postfix está configurado con el parámetro: smtpd_recipient_restrictions = check_policy_service inet:localhost:12340

Las cuotas funcionan correctamente pero cuando envío un email a un dominio externo me crea el directorio del dominio/usuario en /var/vmail con un único fichero en su interior, esto es un problema si se envían muchos emails a distintos destinatarios ya que el sistema de ficheros acabará llegando a límites de inodos, número de directorios, etc.

Por ejemplo si envío un email a test@dominioinventado.com puedo ver en /var/vmail/dominioinventado.com/test un fichero maildirsize con el contenido: 53687091200S 0 0

Según la doc de postfix: http://www.postfix.org/postconf.5.html#smtpd_recipient_restrictions Optional restrictions that the Postfix SMTP server applies in the context of a client RCPT TO command

Supongo que smtpd_recipient_restrictions se ejecuta cada vez que se detecta un RCPT TO, tanto en los mails de entrada como de salida, hay alguna forma de comprobar las cuotas solo para emails entrantes?

Un saludo.

SQL SERVER – Evitar cambios en la DB si falla la Query

estoy teniendo un pequeño inconveniente con una query, es que dentro de la misma tiene varios UPDATES y varios INSERT… Si por alguna razón la query se me corta al medio por alguna excepción los primeros inserts/updates se hacen y los del final no, esto hace que se me genere conflicto en la base de datos porque se genera movimientos de un articulo pero por ejemplo cuando vas a ver el stock, este no sufrio cambios justamente por este error que se genera a mitad de la query..

Hay alguna manera de que si falla se reviertan los cambios? O comprobar la query?

Muchas Gracias

¿Evitar mostrar el nombre del id en la url al dar click en el menu scroll?

Para evitar que se cargue el id del menu de navegación en la url cambie los atributos de: href="#" por los atributos de: data-ref="#" funciona eso pensé, porque no se agrega el id del según el menú al presionar… Pero al llegar al reposo de la animación automáticamente me agrega el id del menu en la url.

Código:

$  (function() { 	$  ("[data-ref^='#']").bind('click', function(e) { 	//$  ('a[href*=#]').bind('click', function(e) { 		e.preventDefault(); 		var target = $  (this).attr("data-ref"); 		$  ('html, body').stop().animate({ 			scrollTop: $  (target).offset().top 		}, 600, function() { 			location.hash = target; 		}); 		return false; 	}); }); $  (window).scroll(function() { 		var scrollDistance = $  (window).scrollTop();  		// Show/hide menu on scroll 		//if (scrollDistance >= 850) { 		//		$  ('nav').fadeIn("fast"); 		//} else { 		//		$  ('nav').fadeOut("fast"); 		//} 	 		// Assign active class to nav links while scolling 		$  ('.page-section').each(function(i) { 				if ($  (this).position().top <= scrollDistance) { 						$  ('.navigation a.active').removeClass('active'); 						$  ('.navigation a').eq(i).addClass('active'); 				} 		}); }).scroll();
* {   font-family: 'Lato', sans-serif;   font-weight: 300;   transition: all .1s ease; } html, body {   height: 100%; } h1 {   font-size: 64px; } .page-section {   height: 480px;   width: 50%;   margin-left: 35%;   margin-top: 5%;   padding: 3em;   background: linear-gradient(45deg, #43cea2 10%, #185a9d 90%);   color: white;   box-shadow: 0px 3px 10px 0px rgba(0, 0, 0, 0.5); } .navigation {   position: fixed;   width: 30%;   margin-left: 2%;   background-color: #999;   color: #fff; } .navigation__link {   display: block;   color: #ddd;   text-decoration: none;   padding: 1em;   font-weight: 400; } .navigation__link:hover {   background-color: #aaa; } .navigation__link.active {   color: white;   background-color: rgba(0, 0, 0, 0.1); }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <link href='https://fonts.googleapis.com/css?family=Lato:100,400,700' rel='stylesheet' type='text/css'>  <nav class="navigation" id="mainNav">   <a class="navigation__link" data-ref="#aaa">Section 1</a>   <a class="navigation__link" data-ref="#bbb">Section 2</a>   <a class="navigation__link" data-ref="#ccc">Section 3</a>   <a class="navigation__link" data-ref="#ddd">Section 4</a>   <a class="navigation__link" data-ref="#eee">Section 5</a>   <a class="navigation__link" data-ref="#fff">Section 6</a> </nav>  <div class="page-section hero" id="1">   <h1>Smooth scroll, fixed jump menu with active class</h1> </div> <div class="page-section" id="aaa">   <h1>Section Two</h1> </div> <div class="page-section" id="bbb">   <h1>Section Three</h1> </div> <div class="page-section" id="ccc">   <h1>Section Four</h1> </div> <div class="page-section" id="ddd">   <h1>Section Five</h1> </div> <div class="page-section" id="eee">   <h1>Section Six</h1> </div> <div class="page-section" id="fff">   <h1>Section Seven</h1> </div>

¿Cómo puedo evitar que se agregue el id del menu de navegación en la url al reposar la animación?

Evitar regresar en php

Tengo un sistema de cursos en donde el usuario lee cierta información de un tema, al final se evalúa al usuario con un examen de 10 preguntas al terminarlo y enviar el formulario con las respuestas se muestran la calificación de dicho examen. El problema es que si el usuario regresa en el navegador se vuelve a mostrar el examen y puede hacerlo nuevamente, cosa que no quiero que suceda.

Espero que se pueda en php, si no tambien en JavaScript.

Como puedo evitar duplicidad de codigo en consulta MYSQL Trabajando con PHP

Tengo el siguiente esquema de tablas, que contienen los datos y detalle de un documento de ventas:

  • DocumentoC — Datos del cliente.
  • DocumentosD — Productos del cliente.
  • DocumentosTMP — Productos temporales al ingresar un documento nuevo.

Consulto el último ID de la tabla DocumentoC para realizar una nueva venta, en donde los productos que se van cargando quedan en la tabla DocumentosTMP (Almacena ID) ya que todavía no esta cerrada la venta.

Al cerrar la venta se obtiene los datos de DocumentosTMP y se pasan a DocumentosD con el ID consultado.

El problema es cuanto trabajan uno o mas usuarios al mismo tiempo. Por ejemplo: UsuarioA y UsuarioB ingresan al mismo tiempo a la pantalla de documentos en donde el sistema les arroja el mismo ID, esto genera conflicto al cerrar la venta por que tienen el mismo ID. ¿Como puedo evitar esto? la estructura no la puedo cambiar por que fue hecho asi…

Gracias. Saludos