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
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()
Beim Vergleich der beiden mit dem obigen Befehl konvertierten Dateien mit WinMarge sind die Daten mit vielen Ziffern an einigen Stellen inkonsistent.
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