python - 如何使用不同的分隔符将Python中的列拆分为多列

标签 python pandas numpy split latitude-longitude

我想将数据框中的一列拆分为多列。

这是我的数据框(df):

object_id    shape            geometry
   1         450    polygon((6.6 51.2, 6.69 51.23, 6.69 51.2))

我想要的输出如下所示:

x      y    x    y      x    y
6.6  51.2  6.69  51.23  6.69  51.2

我正在使用此代码:

df.geometry.str.split('( , )',expand=True)

但我收到错误。

最佳答案

有点 hacky,但我们可以进行一些字符串操作来重新创建您的数据框。

s = df['geometry'].str.replace('polygon\(\(||\)\)','')\
      .str.split(',',expand=True).stack()\
      .str.strip().str.split(' ').explode().to_frame('vals')


s['cords'] =  s.groupby(level=[0,1]).cumcount().map({0 : 'x', 1 : 'y'})


df.join(s.set_index('cords',append=True).unstack([1,2]).droplevel(level=[0,1],axis=1))

   object  shape                                    geometry    x     y     x      y     x     y
0       1      2  polygon((6.6 51.2, 6.69 51.23, 6.69 51.2))  6.6  51.2  6.69  51.23  6.69  51.2

关于python - 如何使用不同的分隔符将Python中的列拆分为多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73252550/

相关文章:

python - 如何强制删除python对象?

使用 urllib.open 时出现 Python 错误

python - 在 DataFrame 中编码多个标签

python - 具有三个 3x3 内核的 6x6 数组的 2D 互相关

python - 如何在 "subprocess.run"函数中使用多个变量?

python - 应用函数并返回多个数据帧后重命名系列列名称

python - 在Python中捕获字符串中的数字并存储在数据框中

Python - 如何将 Pandas 中的行合并为一行? (不是分组依据)

arrays - 如何创建一个与 numpy 数组重叠 50% 的滑动窗口?

python - numpy.linalg.inv 返回奇异矩阵的逆矩阵