You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将双括号分隔元素的列表转换为Python DataFrame?

将嵌套多边形列表转换为DataFrame

原始数据

用户提供的嵌套列表(每个外层子列表对应一个多边形):

[[[33.79277702, -104.3900481],
  [35.79415582, -104.39016576],
  [38.7939, -107.31792],
  [31.792589, -188.38847],
  [36.79221, -108.388367],
  [36.79238003, -108.38905313]],
 [[38.1726905, -54.85042496],
  [30.179095, -84.88893],
  [36.17621409, -84.78],
  [39.17534035, -84.8481921],
  [31.17427369, -84.8499793],
  [50.17466907, -84.8578298]],
 [[46.71949073, -109.69390116],
  [46.72091429, -109.69484574],
  [46.72077, -107.69432],
  [46.7199, -107.6916]],
 [[43.60399, -76.963267], [43.60534111, -79.96221766], [43.6049, -78.9613]],
 [[41.93863726, -81.33993917],
  [43.93630951, -81.33862768],
  [43.9369507, -81.33917589]],
 [[12.19490918, -103.10334755],
  [34.19538203, -124.10439655],
  [22.19548313, -194.10379399],
  [22.19505863, -194.10286483]],
 [[38.99843815, -107.81278381],
  [38.99904541, -107.81251648],
  [38.99930408, -107.81234494],
  [32.99882888, -102.81252263]],
 [[36.3735, -161.8463], [36.3741, -161.8481], [36.374, -161.8466]]]

期望输出

每个多边形子列表对应DataFrame的一行,格式如下:

polygon 
[[[[33.79277702, -104.3900481],[35.79415582,-104.39016576],
[38.7939, -107.31792], [31.792589, -188.38847],
[36.79221, -108.388367],[36.79238003, -108.38905313]]]
      
[[[38.1726905, -54.85042496],[30.179095, -84.88893],
[36.17621409, -84.78],[39.17534035, -84.8481921],
[31.17427369, -84.8499793],[50.17466907, -84.8578298]]]
           ...

解决方案

你不需要特意按双括号拆分,这本身就是一个Python嵌套列表,外层的每个元素就是一个多边形数据。直接用pandas把这个列表包装成DataFrame即可,每个外层子列表会自动成为一行。

代码实现

import pandas as pd

# 你的原始嵌套列表
polygons = [[[33.79277702, -104.3900481],
  [35.79415582, -104.39016576],
  [38.7939, -107.31792],
  [31.792589, -188.38847],
  [36.79221, -108.388367],
  [36.79238003, -108.38905313]],
 [[38.1726905, -54.85042496],
  [30.179095, -84.88893],
  [36.17621409, -84.78],
  [39.17534035, -84.8481921],
  [31.17427369, -84.8499793],
  [50.17466907, -84.8578298]],
 [[46.71949073, -109.69390116],
  [46.72091429, -109.69484574],
  [46.72077, -107.69432],
  [46.7199, -107.6916]],
 [[43.60399, -76.963267], [43.60534111, -79.96221766], [43.6049, -78.9613]],
 [[41.93863726, -81.33993917],
  [43.93630951, -81.33862768],
  [43.9369507, -81.33917589]],
 [[12.19490918, -103.10334755],
  [34.19538203, -124.10439655],
  [22.19548313, -194.10379399],
  [22.19505863, -194.10286483]],
 [[38.99843815, -107.81278381],
  [38.99904541, -107.81251648],
  [38.99930408, -107.81234494],
  [32.99882888, -102.81252263]],
 [[36.3735, -161.8463], [36.3741, -161.8481], [36.374, -161.8466]]]

# 转换为DataFrame,每个外层元素作为一行
df = pd.DataFrame({'polygon': polygons})

# 如果需要让每个多边形再嵌套一层(和示例格式完全一致),用lambda包装
df['polygon'] = df['polygon'].apply(lambda x: [x])

# 查看结果
print(df)

说明

  1. 原始列表的外层结构已经按多边形划分,pandas.DataFrame会直接把每个外层子列表作为polygon列的一行值。
  2. 若需要和示例格式完全匹配(每个多边形额外嵌套一层列表),用apply(lambda x: [x])给每个元素再套一层括号即可。

内容的提问来源于stack exchange,提问作者JEG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 19:01:25