Python - список в pandas dataframe

У меня есть список строк. Каждая строка представляет собой предложение с разделителем-запятой.

RMCs = [
        '$GPRMC,222112.184,A,3713.681121,N,12205.707716,W,2.580,44.9,181018,,,A,V*33', 
        '$GPRMC,222113.150,A,3713.804392,N,12205.729394,W,1.435,64.5,181018,,,A,V*32', 
        '$GPRMC,222114.153,A,3713.833715,N,12205.736514,W,0.180,323.4,181018,,,A,V*02', 
        '$GPRMC,222115.157,A,3713.834953,N,12205.735842,W,0.374,8.8,181018,,,A,V*0E', 
        '$GPRMC,222116.163,A,3713.834541,N,12205.733602,W,0.240,346.6,181018,,,A,V*08', 
        '$GPRMC,222117.163,A,3713.833123,N,12205.734873,W,0.664,238.3,181018,,,A,V*0E', 
        '$GPRMC,222118.166,A,3713.833402,N,12205.733397,W,0.242,308.0,181018,,,A,V*05'
       ]

Я хочу разделить каждую строку запятой и поместить их в фреймворк Pandas. ожидаемый результат должен быть таким, как в таблице ниже:

1  $GPRMC  222112.184  A  3713.681121  N  12205.707716  W  2.580  44.9  181018  NaN  NaN  A  V*33
2  $GPRMC  222113.150  A  3713.804392  N  12205.729394  W  1.435  64.5  181018  NaN  NaN  A  V*32
3  $GPRMC  222114.153  A  3713.833715  N  12205.736514  W  0.180 323.4  181018  NaN  NaN  A  V*02'
.
.
n  $GPRMC  ................................................................

** При необходимости я могу добавить заголовки.

Пробовали разными способами, но смогли найти наиболее эффективный и чистый способ.

Пожалуйста помогите.

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
70
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Используйте конструктор DataFrame с пониманием списка и split:

df = pd.DataFrame([x.split(',') for x in RMCs])
print (df)

       0           1  2            3  4             5  6      7      8   \
0  $GPRMC  222112.184  A  3713.681121  N  12205.707716  W  2.580   44.9   
1  $GPRMC  222113.150  A  3713.804392  N  12205.729394  W  1.435   64.5   
2  $GPRMC  222114.153  A  3713.833715  N  12205.736514  W  0.180  323.4   
3  $GPRMC  222115.157  A  3713.834953  N  12205.735842  W  0.374    8.8   
4  $GPRMC  222116.163  A  3713.834541  N  12205.733602  W  0.240  346.6   
5  $GPRMC  222117.163  A  3713.833123  N  12205.734873  W  0.664  238.3   
6  $GPRMC  222118.166  A  3713.833402  N  12205.733397  W  0.242  308.0   

       9  10 11 12    13  
0  181018        A  V*33  
1  181018        A  V*32  
2  181018        A  V*02  
3  181018        A  V*0E  
4  181018        A  V*08  
5  181018        A  V*0E  
6  181018        A  V*05  

Если хотите, замените также строки empty:

df = pd.DataFrame([[i if i != '' else np.nan for i in x.split(',')] for x in RMCs])

print (df)

       0           1  2            3  4             5  6      7      8   \
0  $GPRMC  222112.184  A  3713.681121  N  12205.707716  W  2.580   44.9   
1  $GPRMC  222113.150  A  3713.804392  N  12205.729394  W  1.435   64.5   
2  $GPRMC  222114.153  A  3713.833715  N  12205.736514  W  0.180  323.4   
3  $GPRMC  222115.157  A  3713.834953  N  12205.735842  W  0.374    8.8   
4  $GPRMC  222116.163  A  3713.834541  N  12205.733602  W  0.240  346.6   
5  $GPRMC  222117.163  A  3713.833123  N  12205.734873  W  0.664  238.3   
6  $GPRMC  222118.166  A  3713.833402  N  12205.733397  W  0.242  308.0   

       9   10  11 12    13  
0  181018 NaN NaN  A  V*33  
1  181018 NaN NaN  A  V*32  
2  181018 NaN NaN  A  V*02  
3  181018 NaN NaN  A  V*0E  
4  181018 NaN NaN  A  V*08  
5  181018 NaN NaN  A  V*0E  
6  181018 NaN NaN  A  V*05  

классно! Большое спасибо за быстрый ответ!

KinGorbaZ 25.10.2018 13:21

@KinGorbaZ - Спасибо, рад помочь. Не забудьте принять ответ, если он вам подходит! :)

jezrael 25.10.2018 13:34

Другие вопросы по теме