Как добавить строку заголовка в фрейм данных pandas
Я читаю CSV-файл в pandas. Этот csv-файл состоит из четырех столбцов и некоторых строк, но не имеет строки заголовка, которую я хочу добавить. Я пробовал следующее:
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)
что именно означает ошибка? И что было бы чистым способом в python добавить строку заголовка в мой csv-файл/pandas df?
4 ответов:
можно использовать
namesнепосредственно вread_csvимена: массив-как, по умолчанию нет списка имен столбцов для использования. Если файл не содержит строки заголовка, то вы должны явно передать header=None
Cov = pd.read_csv("path/to/file.txt", sep='\t', names = ["Sequence", "Start", "End", "Coverage"])строка ниже не будет работать, как вы ожидаете.
Covуже является фреймом данных, предполагая, что он действительно имеет 4 столбца, когда он читается из файла.Frame=pd.DataFrame([Cov], columns = ["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]toCov.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')но самое умное решение по-прежнему является использование
pd.read_excelСheader=Noneиnames=columns_list.
Comments