Un mémo lorsque la valeur numérique change légèrement lors de la lecture de données avec Pandas read_csv, du changement du nom de la colonne, etc. et de la sortie avec to_csv
Voici le code minimum de l'essence de cet article. Il suffit de lire et de cracher.
PandasTest.py
import pandas as pd
import argparse
def main():
parser = argparse.ArgumentParser()
parser.add_argument("-input", type=str, required=True)
parser.add_argument("-output", type=str, required=True)
args = parser.parse_args()
df = pd.read_csv(args.input, index_col=0)
df.to_csv(args.output)
if __name__ == "__main__":
main()
En comparant les deux fichiers convertis par la commande ci-dessus avec WinMarge, les données comportant de nombreux chiffres sont incohérentes à certains endroits.
Bien que la cause exacte n'ait pas été élucidée, il est présumé que la perte de chiffres, etc. s'est produite lors de sa conversion pour flotter à l'intérieur des Pandas. Par conséquent, ajoutez dtype = "object" à l'argument de read_csv pour empêcher la conversion de type. Cela vous donnera une correspondance exacte.
df = pd.read_csv(args.input, index_col=0, dtype=object)
Recommended Posts