为了账号安全,请及时绑定邮箱和手机立即绑定

Pandas:如何分割多个分隔符?

Pandas:如何分割多个分隔符?

慕村9548890 2023-09-12 16:56:55
我的数据框在单列(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 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

让我们使用从列中extractall提取lat,long和,然后对其进行重塑,最后使用列和:altCoordinatesunstackjoinIDRegion


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


查看完整回答
反对 回复 2023-09-12
  • 1 回答
  • 0 关注
  • 63 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信