python - список данных для панд - PullRequest
0 голосов
/ 25 октября 2018

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

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  ................................................................

** Я могу добавить заголовки, если это необходимо.

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

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

1 Ответ

0 голосов
/ 25 октября 2018

Используйте 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  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...