So fügen Sie einem Pandas DataFrame eine Kopfzeile hinzu

Lesezeit: 3 Minuten

Benutzer-Avatar
Sequenz_hart

Ich lese eine CSV-Datei ein pandas. Diese CSV-Datei besteht aus vier Spalten und einigen Zeilen, hat aber keine Kopfzeile, die ich hinzufügen möchte. Folgendes habe ich versucht:

Cov = pd.read_csv("path/to/file.txt", sep='\t')
Frame=pd.DataFrame([Cov], columns = ["Sequence", "Start", "End", "Coverage"])
Frame.to_csv("path/to/file.txt", sep='\t')

Aber wenn ich den Code anwende, erhalte ich den folgenden Fehler:

ValueError: Shape of passed values is (1, 1), indices imply (4, 1)

Was genau bedeutet der Fehler? Und was wäre ein sauberer Weg in Python, um meiner CSV-Datei/Pandas df eine Kopfzeile hinzuzufügen?

  • Hier ist eine andere Interpretation Ihrer Frage: Fügen Sie einem vorhandenen Datenrahmen einen weiteren Header hinzu, um einen MultiIndex zu erstellen.

    – cs95

    24. Mai 2019 um 6:44 Uhr

Benutzer-Avatar
Leb

Sie können verwenden names direkt im read_csv

names : Array-ähnlich, Standard Keine Liste der zu verwendenden Spaltennamen. Wenn die Datei keine Kopfzeile enthält, sollten Sie explizit header=None übergeben

Cov = pd.read_csv("path/to/file.txt", 
                  sep='\t', 
                  names=["Sequence", "Start", "End", "Coverage"])

  • @Leb, ich hatte genau das gleiche Problem und habe deine Lösung ausprobiert. Ich habe die Überschriften für die Tabelle erhalten, aber die erste Zeile wurde auch durch dieselben Überschriftennamen ersetzt. Was soll ich jetzt tun?

    – 007mrviper

    13. November 2018 um 18:28 Uhr

  • es fügt meinen Daten mehr Spalten hinzu, alle mit NaN Attribute. Das lag daran, dass mein Trennzeichen ein leerer Raum ist.

    – SalahAdDin

    23. Januar 2020 um 13:32 Uhr


  • Gibt es einen Grund, warum, wenn Sie einen DataFrame erstellen, das Attribut so genannt wird und Sie eine CSV-Datei, es anders heißt. Ich glaube, es gibt drei verschiedene Namen für dieses Header-Label-Attribut, je nachdem, welche Funktion Sie verwenden.

    – Dämongolem

    31. August 2020 um 11:49 Uhr

Benutzer-Avatar
Anton Protopopow

Alternativ könntest du sie mit csv auslesen header=None und dann mit hinzufügen df.columns:

Cov = pd.read_csv("path/to/file.txt", sep='\t', header=None)
Cov.columns = ["Sequence", "Start", "End", "Coverage"]

  • Code ist gut – aber ich habe herausgefunden, dass er in einem leeren Datenrahmen nicht funktioniert. In diesem Fall wirft Python “ValueError: Length mismatch: Expected axis has 0 elements, new values ​​have … elements”. Möglicherweise benötigen Sie so etwas wie stackoverflow.com/questions/44513738/…

    – Alexandre Jean

    31. Juli 2021 um 3:26 Uhr


Benutzer-Avatar
Bhardwaj Joshi

col_Names=["Sequence", "Start", "End", "Coverage"]
my_CSV_File= pd.read_csv("yourCSVFile.csv",names=col_Names)

Nachdem Sie dies getan haben, überprüfen Sie es einfach mit:

my_CSV_File.head()

Um Ihren Code zu reparieren, können Sie ihn einfach ändern [Cov] zu Cov.valuesder erste Parameter von pd.DataFrame wird zu einem mehrdimensionalen numpy Array:

Cov = pd.read_csv("path/to/file.txt", sep='\t')
Frame=pd.DataFrame(Cov.values, columns = ["Sequence", "Start", "End", "Coverage"])
Frame.to_csv("path/to/file.txt", sep='\t')

Aber die klügste Lösung ist immer noch die Nutzung pd.read_excel mit header=None und names=columns_list.

Benutzer-Avatar
Schoaib Muhammad Arif

Einfache und einfache Lösung:

import pandas as pd

df = pd.read_csv("path/to/file.txt", sep='\t')
headers =  ["Sequence", "Start", "End", "Coverage"]
df.columns = headers

HINWEIS: Stellen Sie sicher, dass Ihre Kopfzeilenlänge und die Kopfzeilenlänge der CSV-Datei nicht voneinander abweichen.

Benutzer-Avatar
Benutzer3636989

Da dies erwähnt wird, dass wir aus einer CSV-Datei lesen, sollte das Trennzeichen so sein ','[as default, not need to mention]' and the given file has no header so header=Keine`

Beispielcode :

import pandas as pd
data = pd.read_csv('path/to/file.txt',header=None)
data.columns = ["Sequence", "Start", "End", "Coverage"]
print(data.head()) #Print the first rows

1060770cookie-checkSo fügen Sie einem Pandas DataFrame eine Kopfzeile hinzu

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy