我希望将数据帧中的一列拆分为多列.

这是我拥有的数据帧(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)

但我收到了一个错误.

推荐答案

有点老套,但我们可以做一些字符串操作来重新创建您的数据帧.

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相关问答推荐

在方法中设置属性值时,如何处理语句不可达[Unreacable]";的问题?

在matplotlib中使用不同大小的标记顶部添加批注

Seaborn散点图使用多个不同的标记而不是点

python3中np. divide(x,y)和x/y有什么区别?'

Polars定制函数返回多列

一维不匹配两个数组上的广义ufunc

如何在Pandas中用迭代器求一个序列的平均值?

如果列包含空值,则PANAS查询不起作用

解析CSV文件以将详细信息添加到XML文件

ValueError:必须在Pandas 中生成聚合值

更新包含整数范围的列表中的第一个元素

如何导入与我试图从该目录之外运行的文件位于同一目录中的Python文件?

通过PyTorch中的MIN函数传递渐变

Pandas 修正滚动平均

如何在python中为列表中的每个项目分配来自另一个列表的相等数量的项目

在给定区间列表的情况下计算不重叠对的数量的最佳方法

解析网站时无法得到正确答案

在matplotlib中使用渐变 colored颜色 填充区域之间

如何分解在某些行中为空,但在其他行中填充的pandas框架

Django-自动完成搜索为已注销用户抛出错误?