[英]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
提取lat
, long
和alt
從Coordinates
列,然后unstack
它重塑,最后join
用列本ID
和Region
:
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.