简体   繁体   English

python - 列出熊猫数据框

[英]python - list to pandas dataframe

I have list of strings.我有字符串列表。 Each string is a sentence with comma delimiter.每个字符串都是一个带有逗号分隔符的句子。

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'
       ]

I want to split each line by the comma and place them into Pandas dataframe.我想用逗号分割每一行并将它们放入 Pandas 数据框中。 the expected output should be like the table below:预期输出应如下表所示:

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

** I can add headers if needed. ** 如果需要,我可以添加标题。

Tried in so many ways but could find the most efficient and clean way.尝试了很多方法,但可以找到最有效和最干净的方法。

Please assist.请协助。

Use DataFrame constructor with list comprehension and split :使用带有列表理解和split DataFrame构造函数:

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  

If want also replace empty strings:如果还想替换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  

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM