python-3.x - 从列表列表中提取列表并将它们分配到python中的列中
问题描述
我有一个数据集(df_norm),其中有一列“geometry.coordinates”,其中包含一个列表(l1)作为它的值:
geometry.coordinates
0 [[[23.514690935490876, 53.946715071429367], [2...
1 [[[23.549827385369554, 53.942282407709513], [2...
2 [[[23.574999999999307, 53.941666666666151], [2...
我需要从每个列表中提取单个坐标并将每个坐标分配到一个单独的列中,以获得类似于此的输出:
longitude1 latitude1 longitude2 latitude2 ...
23.514690935490876 53.946715071429367 23.5127605166679412 53.961345695020002
23.549827385369554 53.942282407709513 23.6123409888603434 53.941666666666151
....
我的代码是:
def flatten_list(l1):
flat_list = []
for sublist in df_norm['geometry.coordinates'][0]:
for item in sublist:
flat_list.append(item)
return flat_list
for i in range(len(df_norm['geometry.coordinates'])):
for j in df_norm['geometry.coordinates']:
flatten_list(df_norm['geometry.coordinates'])
var1 = flat_list[i][0]
var2 = flat_list[i][1]
var3 = flat_list[i][2]
var4 = flat_list[i][3]
var5 = flat_list[i][4]
我收到一个错误:
IndexError: list index out of range
我究竟做错了什么?
解决方案
似乎您的flatten_list()
函数会生成一个包含所有值的单个未嵌套列表。但是,当您索引列表以分配变量时,您使用的是嵌套表示法flat_list[i][0]
。为了将新列表中的值分配flatten_list()
给相应的变量,请尝试更改索引,如下所示:
for i in range(len(df_norm['geometry.coordinates'])):
for j in df_norm['geometry.coordinates']:
flatten_list(df_norm['geometry.coordinates'])
var1 = flat_list[i]
var2 = flat_list[i+1]
var3 = flat_list[i+2]
var4 = flat_list[i+3]
var5 = flat_list[i+4]
此外,如果我正确理解您的目标,您希望在每个变量名下生成列表。照原样,循环将替换这些值,并且只保留最后 5 个值(每个变量一个)。也许为循环外的每个变量生成列表并附加值会是更好的方法?range()
最后 -可能需要更改您的参数。否则,随着临时变量的进行,对应于一个变量的重复值将被放入错误的变量中i
。
var1 = []
var2 = []
var3 = []
var4 = []
var5 = []
for i in range(0,len(df_norm['geometry.coordinates'],5)):
for j in df_norm['geometry.coordinates']:
flatten_list(df_norm['geometry.coordinates'])
var1.append(flat_list[i])
var2.append(flat_list[i+1])
var3.append(flat_list[i+2])
var4.append(flat_list[i+3])
var5.append(flat_list[i+4])
推荐阅读
- ruby - Rspec:失败/错误:ActionCable.server.pubsub.redis_connection_for_subscriptions.smembers “在线”
- java - Spring 多个自动装配的单例实例
- javascript - 如何在每个数据上传到服务器时显示进度或加载栏,并在通过时显示成功消息
- ios - 尝试在 Swift iOS 中缩短 url 时,在范围内找不到“linkBuilder”错误
- assembly - 当全局变量名称长于一个制表符空间时,MIPS 缩进
- javascript - 如何使用 React onScroll 触发动画?
- python - 响应状态代码出现问题,表示未定义响应
- git - 无法从 terraform 注册表下载模块
- types - 与 `.enumerate()` 不匹配的类型:预期类型 `u8`,找到参考 `&_`
- java - 将 byte[] 转换为 ISO-8859-15 或 utf-8