[PYTHON] Pandas mit subtilen Veränderungen in der Anzahl und wie man damit umgeht

Einführung

Ein Memo, wenn sich der numerische Wert geringfügig ändert, wenn Daten mit Pandas read_csv gelesen, der Spaltenname usw. geändert und mit to_csv ausgegeben werden

Quelle

Unten finden Sie den Mindestcode aus dem Kern dieses Artikels. Einfach lesen und ausspucken.

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()

Problem

Beim Vergleich der beiden mit dem obigen Befehl konvertierten Dateien mit WinMarge sind die Daten mit vielen Ziffern an einigen Stellen inkonsistent. image.png

Korrespondenz

Obwohl die genaue Ursache nicht geklärt wurde, wird vermutet, dass bei der Umstellung auf Float in Pandas ein Ziffernverlust aufgetreten ist. Fügen Sie daher dem Argument von read_csv dtype = "object" hinzu, um eine Typkonvertierung zu verhindern. Dadurch erhalten Sie eine genaue Übereinstimmung.

   df = pd.read_csv(args.input, index_col=0, dtype=object)

Recommended Posts

Pandas mit subtilen Veränderungen in der Anzahl und wie man damit umgeht
Extrahieren Sie den Maximalwert mit Pandas und ändern Sie diesen Wert
Extrahieren Sie den Maximalwert mit Pandas.
Beschreibe ec2 mit boto3 und rufe den Wert ab
Skript zum Ändern der Klanglänge mit REAPER
[Python3] Speichern Sie die Mittelwert- und Kovarianzmatrix in json mit Pandas
Eine Klasse, die den SPS-Wert durch Socket-Kommunikation frei ändert