[python] 팬더 DataFrame에 헤더 행을 추가하는 방법

에 CSV 파일을 읽고 pandas있습니다. 이 CSV 파일은 4 개의 열과 일부 행으로 구성되지만 헤더 행이 없으므로 추가하고 싶습니다. 나는 다음을 시도했다.

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

그러나 코드를 적용하면 다음 오류가 발생합니다.

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

오류가 정확히 무엇을 의미합니까? 그리고 내 csv 파일 / 팬더 df에 헤더 행을 추가하는 파이썬의 깔끔한 방법은 무엇입니까?



답변

names에서 직접 사용할 수 있습니다read_csv

names : array-like, default 없음 사용할 열 이름 목록입니다. 파일에 헤더 행이 없으면 명시 적으로 header = None을 전달해야합니다.

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


답변

또는 csv를 읽고 header=None다음과 같이 추가 할 수 있습니다 df.columns.

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


답변

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

이 작업을 수행 한 후 확인하십시오. 하지만 여전히 …

my_CSV_File.head()

그것이 도움이되기를 바랍니다 … 건배


답변

코드를 수정하기 위해 간단히로 변경할 [Cov]수 있습니다 Cov.values.의 첫 번째 매개 변수는 pd.DataFrame다차원 numpy배열이됩니다.

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

그러나 가장 현명한 솔루션은 여전히 and pd.read_excel와 함께 사용 하는 것 입니다.header=Nonenames=columns_list


답변