我的数据框在单列(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='')
1 回答
![?](http://img1.sycdn.imooc.com/545869390001b87802200220-100-100.jpg)
缥缈止盈
TA贡献2041条经验 获得超4个赞
让我们使用从列中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
添加回答
举报
0/150
提交
取消