Как создать фрейм данных из текстового файла с первым словом в качестве столбца, используя pandas?

#python #pandas #dataframe #data-science

#питон #панды #фрейм данных #наука о данных

Вопрос:

У меня есть набор данных с миллионами строк. Мне нужен более быстрый способ создания фрейма данных в следующем формате:-

    column_1   column_2
    1         line 1
    Yes       Go to School
    NO        Play video games for hours
 

формат файла:-

 1 line 1
Yes Go to School
No Play video games for hours
 

Есть ли какой-нибудь более быстрый способ выполнить эту задачу с помощью pandas, например, любой встроенной функции или около того?? существует ок. 3 миллиона строк в файле.

Комментарии:

1. Каков ваш текущий подход и сколько времени он занимает?

2. В чем здесь логика? Вы разбиваете на первый пробел, и все справа переходит во второй столбец?

3. @IoaTzimas Это правильно (по крайней мере, из того, что я прочитал). Это очень просто сделать с использованием любых библиотек, но не уверен, как это делает OP и сколько времени это занимает.

Ответ №1:

Попробуйте следующее (загрузка на моем компьютере занимает около 20 секунд, я не знаю, достаточно ли это для вас)

 with open('yourfile.txt') as f:
    data = [line.split(' ', maxsplit=1) for line in f]

df=pd.DataFrame.from_records(data, columns=['column_1', 'column_2'])
 

Ответ №2:

Попробуйте использовать регулярное выражение для разделения строк файла-

 df = pd.read_csv('file.txt', sep='^(S )', names=['column_1', 'column_2'], engine='python', usecols=[1, 2])