это образец данных
ao112 qwertyuiopasdfgh
ao12234 isbcbcobcwocbwowd
ao12 lscnldcnoodqhiod
Я хочу создать фрейм данных, используя файл .txt, где фрейм данных должен создавать отдельные столбцы в этом примере (2 столбца), используя эту информацию. имя столбца | позиция код |1-7 пустой |8 описание|9- до конца Мне нужно создать столбцы фрейма данных, отделив их от определенной позиции в примере, который находится в пустой позиции.
пытался использовать этот код, но не смог найти, какой параметр следует использовать в sep
data=pd.read_csv('filepath',sep=' ',name=['code','description'])






Вы можете использовать pandas.read_fwf:
Вы можете вывести формат, используя colspecs='infer', или предоставить полный список диапазонов.
colspecslist of tuple (int, int) or ‘infer’. optional
A list of tuples giving the extents of the fixed-width fields of each line as half-open intervals (i.e., [from, to[ ). String value ‘infer’ can be used to instruct the parser to try detecting the column specifications from the first 100 rows of the data which are not being skipped via skiprows (default=’infer’).
(pd.read_fwf('filepath', colspecs='infer', header=None)
.set_axis(['code','description'], axis=1)
)
В качестве альтернативы используйте разделитель регулярных выражений с pandas.read_csv (если у вас есть один или несколько пробелов в качестве разделителя):
pd.read_csv('filepath', sep='\s+', names=['code','description'])
выход:
code description
0 ao112 qwertyuiopasdfgh
1 ao12234 isbcbcobcwocbwowd
2 ao12 lscnldcnoodqhiod
Почему нет? Должны ли вы иметь 2 или 3 столбца в этом случае?
только 2 столбца, но если я использую описанный выше метод read_csv, он создаст (из моего примера) 4 столбца
В этом случае, я думаю, требуется read_fwf
с помощью этого метода read_fwf мой требуемый вывод был получен, но если я использую read_csv, я не мог получить тот же вывод, что и read_fwf. я хочу знать, возможно ли это или нужно не только 2 столбца, но если я использую вышеуказанный метод read_csv, он создаст (из моего примера) 4 столбца
Если бы у вас было как минимум 2 пробела между двумя столбцами, вы могли бы использовать read_csv с \s\s+ в качестве разделителя, но здесь это не так.
так что это невозможно, в read_csv следует идти с read_fwf
хорошо, что я должен сделать для этого типа сценария?
code description ao1233 kdpncwdc qsndwoiend qsonqondoздесь sep='\s+' не будет работать, какая альтернатива в read_csv