簡體   English   中英

熊貓:如何拆分多個分隔符?

[英]Pandas: How to split on multiple delimiters?

我的數據框包含單列( coordinates )中的緯度、經度和高度,我想將coordinates列分成三列(緯度、經度和高度)。

df:

ID                                                         Coordinates                                                      Region  
1     latitude_degrees: 52.00755721100514\nlongitude_degrees: 12.565129548994266\naltitude_meters: 185.23616827199143\n     Europe   
2     latitude_degrees: 52.00755721100514\nlongitude_degrees: 12.565129548994266\naltitude_meters: 185.23616827199143\n     Europe   
3     latitude_degrees: 52.00755721100514\nlongitude_degrees: 12.565129548994266\naltitude_meters: 185.23616827199143\n     Europe   
4     latitude_degrees: 52.00755721100514\nlongitude_degrees: 12.565129548994266\naltitude_meters: 185.23616827199143\n     Europe   
5     latitude_degrees: 52.00755721100514\nlongitude_degrees: 12.565129548994266\naltitude_meters: 185.23616827199143\n     Europe  

預期輸出:

ID           lat                lon                     alt             Region  
1      52.00755721100514  12.565129548994266     185.23616827199143     Europe   
2      52.00755721100514  12.565129548994266     185.23616827199143     Europe   
3      52.00755721100514  12.565129548994266     185.23616827199143     Europe   
4      52.00755721100514  12.565129548994266     185.23616827199143     Europe   
5      52.00755721100514  12.565129548994266     185.23616827199143     Europe 

我試過的:

我試圖首先在:基礎上拆分列,但它不起作用:

df.loc[df['Coordinates'].isin(["latitude_degrees", "longitude_degrees"])]= ""

我也嘗試替換文本,但它不起作用:

df.Coordinates.replace(to_replace=['latitude_degrees','longitude_degrees'],value='')

讓我們用extractall提取latlongaltCoordinates列,然后unstack它重塑,最后join用列本IDRegion

c = df['Coordinates'].str.extractall(r'([\d.]+)')[0].unstack()
d = df[['ID', 'Region']].join(c.set_axis(['lat', 'long', 'alt'], 1))

   ID  Region                lat                long                 alt
0   1  Europe  52.00755721100514  12.565129548994266  185.23616827199143
1   2  Europe  52.00755721100514  12.565129548994266  185.23616827199143
2   3  Europe  52.00755721100514  12.565129548994266  185.23616827199143
3   4  Europe  52.00755721100514  12.565129548994266  185.23616827199143
4   5  Europe  52.00755721100514  12.565129548994266  185.23616827199143

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM