#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])