У меня есть массив со значениями, разделенными символом «|». Я хотел бы проанализировать его в фрейме данных pandas.
import pandas as pd
arr = ['19345360853|5264654|100530|2017-01-07', '19345360853|13518371|100530|2018-10-08']
pd.DataFrame([{'Id': item.split('|')[0] ,'Code_A': item.split('|')[1] , 'Code_B': item.split('|')[2],'Reg_Date': item.split('|')[3]} for item in arr ])
Я хотел бы, чтобы фрейм данных pandas находился в следующей схеме:
Строка идентификатора Строка «Код_А» Строка «Код_B» Дата 'Reg_Date'
Таким образом, полученный фрейм данных Pandas будет похож на этот. фрейм данных результата
Любая помощь приветствуется.






Сначала преобразуйте в двумерный список
arr = [a.split("|") for a in arr]
Во-вторых, конвертировать в фрейм данных pandas
data = pd.DataFrame(arr,columns=['Id','Code_A','Code_B','Reg_Date'])
Id Code_A Code_B Reg_Date
0 19345360853 5264654 100530 2017-01-07
1 19345360853 13518371 100530 2018-10-08
Преобразование столбца Reg_Date с помощью astype (ссылка: атипия)
a =pd.DataFrame(arr,columns=['Id','Code_A','Code_B','Reg_Date'])
a['Reg_Date'] = a['Reg_Date'].astype('datetime64[ns]')
Как получить столбец Reg_Date как дату?
@KeerikkattuChellappan, используя astype, я редактирую ответ
Просто отметим, что вы можете превратить [a.split("|") for a in arr] в генератор понимания, и он не будет занимать столько места в памяти.
В Python нет массивов, в Python есть списки. Тем не менее, почему бы просто не разделить строки с помощью разделителя
|