Umordnungsspalten in CSV

Die Frage wurde bereits gestellt, aber die Anforderungen wurden nicht ordnungsgemäß vermittelt. Ich habe eine csv-Datei mit mehr als 1000 Spalten:

ABCD .... XYZ 1 0 0.5 5 .... 1 7 6 2 0 0.6 4 .... 0 7 6 3 0 0.7 3 .... 1 7 6 4 0 0.8 2 .... 0 7 6 

Hier sind X, Y und Z die 999, 1000, 10001 Spalte und A, B, C, D sind die 1., 2., 3. und 4.. Ich muss die Spalten so umordnen, dass es mir folgendes gibt.

 DYZABC ....X 5 7 6 1 0 0.5 ....1 4 7 6 2 0 0.6 ....0 3 7 6 3 0 0.7 ....1 2 7 6 4 0 0.8 ....0 

Das ist die 4. Spalte wird die 1., 1000 und 1001. Spalte wird 2. und 3. und die anderen Spalten werden entsprechend entsprechend verschoben.

  • Lesen einer csv mit einer Zeitstempelspalte, mit Pandas
  • CSV-Datei mit Python geschrieben hat leere Zeilen zwischen jeder Zeile
  • Vorabdatei vor dem pandas read_csv vorab bearbeiten
  • Zugriff auf csv header Leerraum und Groß- und Kleinschreibung
  • Wie hörst du auf, um mich zu wiederholen
  • Python zum Eltern / Kind JSON
  • 2 Solutions collect form web for “Umordnungsspalten in CSV”

    Also die Frage ist, wie Sie Ihre Spalten in einer benutzerdefinierten Weise neu ordnen.

    Zum Beispiel haben Sie die folgenden DF und Sie möchten Ihre Spalten auf folgende Weise (Indizes) neu anordnen:

    5, 3, Rest …

    DF

     In [82]: df Out[82]: ABCDEFG 0 1 0 0.5 5 1 7 6 1 2 0 0.6 4 0 7 6 2 3 0 0.7 3 1 7 6 3 4 0 0.8 2 0 7 6 

    Spalten

     In [83]: cols = df.columns.tolist() In [84]: cols Out[84]: ['A', 'B', 'C', 'D', 'E', 'F', 'G'] 

    Nachbestellt:

     In [88]: cols = [cols.pop(5)] + [cols.pop(3)] + cols In [89]: cols Out[89]: ['F', 'D', 'A', 'B', 'C', 'E', 'G'] In [90]: df[cols] Out[90]: FDABCEG 0 7 5 1 0 0.5 1 6 1 7 4 2 0 0.6 0 6 2 7 3 3 0 0.7 1 6 3 7 2 4 0 0.8 0 6 
     In [4]: df Out[4]: ABCDXYZ 0 1 0 0.5 5 1 7 6 1 2 0 0.6 4 0 7 6 2 3 0 0.7 3 1 7 6 3 4 0 0.8 2 0 7 6 In [5]: df.reindex(columns=['D','Y','Z','A','B','C','X']) Out[5]: DYZABCX 0 5 7 6 1 0 0.5 1 1 4 7 6 2 0 0.6 0 2 3 7 6 3 0 0.7 1 
    Python ist die beste Programmiersprache der Welt.