Как не допустить, чтобы первая строка стала заголовком при импорте нескольких файлов TXT-файлов в Python и назначении каждого отдельному фрейму данных? - PullRequest
0 голосов
/ 22 января 2020

У меня есть 4 текстовых файла, которые я смог импортировать, преобразовать в фрейм данных и сохранить в списке. В файлах нет заголовков, которые я не могу добавить в сами файлы. Когда я запускаю код, первая строка превращается в заголовки. Как мне изменить этот код, чтобы первая строка не стала заголовком? all_dfs - это список, содержащий имена файлов.

filenames = glob.glob("U32_*.txt")
all_dfs = [pd.read_csv(filename) for filename in filenames]
for dataframe, filename in zip(all_dfs, filenames):
    dataframe['filename'] = filename

1 Ответ

1 голос
/ 22 января 2020

Из документации pandas .read_csv :

заголовок: int, список int, значение по умолчанию 'infer'

Количество строк использовать как имена столбцов, так и начало данных. Поведение по умолчанию заключается в выводе имен столбцов: если имена не переданы, поведение идентично header = 0, а имена столбцов выводятся из первой строки файла, если имена столбцов передаются явно, то поведение идентично header = None. , Явно передайте header = 0, чтобы иметь возможность заменить существующие имена. Заголовок может быть списком целых чисел, которые указывают местоположения строк для мультииндекса в столбцах, например [0,1,3]. Промежуточные строки, которые не указаны, будут пропущены (например, 2 в этом примере пропущено). Обратите внимание, что этот параметр игнорирует закомментированные строки и пустые строки, если skip_blank_lines = True, поэтому header = 0 обозначает первую строку данных, а не первую строку файла.

имена: подобные массиву, необязательные

Список имен столбцов для использования. Если файл не содержит строку заголовка, то вы должны явно передать header = None. Дубликаты в этом списке недопустимы.

Поскольку ваши файлы не имеют заголовков, поведение по умолчанию для вывода имен столбцов не будет работать для вас, и вам нужно будет указать header=None в ваш вызов read_csv, чтобы переопределить это поведение по умолчанию. Вы, вероятно, также захотите предоставить массив names для обеспечения имен столбцов.

Так что это будет выглядеть примерно так:

pd.read_csv(filename, names=['firstColName', 'secondColName'], header=None)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...