[python] Come aggiungere una riga di intestazione a un DataFrame panda



1 Answers

In alternativa potresti leggere csv con header=None e quindi aggiungerlo con df.columns :

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

Sto leggendo un file CSV in pandas . Questo file csv constists di quattro colonne e alcune righe, ma non ha una riga di intestazione, che voglio aggiungere. Ho provato il seguente:

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

Ma quando applico il codice, ottengo il seguente errore:

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

Che cosa significa esattamente l'errore? E quale sarebbe un modo pulito in python per aggiungere una riga di intestazione al mio file csv / pandas df?




Per correggere il tuo codice puoi semplicemente cambiare [Cov] in Cov.values , il primo parametro di pd.DataFrame diventerà un array numpy multidimensionale:

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

Ma la soluzione più intelligente è ancora usare pd.read_excel con header=None e names=columns_list .




Related