【发布时间】:2022-01-01 12:01:05
【问题描述】:
我创建了以下函数来从参数创建数据框
gamle_dfs = []
def create_lines_df_2(Origin, Destination, line_, nodes_):
dict_ = [{'Origin':Origin,'Destination':Destination,'geometry':line_,
'length':line_.length,
'osmid':[nodes_.index.values]}]
df = gpd.GeoDataFrame(dict_, geometry='geometry',
crs=oslo_edges_proj.crs).reset_index()
gamle_dfs.append(df)
我将准确地使用此函数 289 次,为每个区域路线提供 17 个 Dataframe 1,但该函数将每个 Dataframe 作为列表的一个元素返回,我希望它们作为一个 Dataframe,如果我将列表更改为GeoDataframe 它会给我一个空的Dataframe,
结果是这样的:
[ Origin Destination geometry \
0 Gamle Oslo Grünerløkka LINESTRING (599408.712 6642638.038, 599353.853...
length osmid
0 1960.743326 [[1485390119, 79624, 1485390291, 24935363, 345... ,
Origin Destination geometry \
0 Gamle Oslo Sagene LINESTRING (599408.712 6642638.038, 599353.853...
length osmid
0 3799.280637 [[1485390119, 79624, 1485390291, 24935363, 345... ]
我可以使用 gamle_dfs[0,.,.,n] 访问每个 Dataframe
将输出作为函数附加的 Dataframe 的解决方案是什么?
编辑添加示例:
origin = ['a']
destinations = ['b','c','d','e']
line1 = ['shaprely.geometry.nodes from a to b']
line2 = ['shaprely.geometry.nodes from a to c']
line3 = ['shaprely.geometry.nodes from a to d']
line4 = ['shaprely.geometry.nodes from a to e']
gamle_dfs = []
def create_lines_df_2test(Origin, Destination, line_):
dict_ =
[{'Origin':Origin,'Destination':Destination,'geometry':line_,
'length':len(line_)}]
df = pd.DataFrame(dict_)
gamle_dfs.append(df)
当我只需要从这些 gamle_dfs 索引中组合 1 个时,这给了我一个 Dataframes 列表
【问题讨论】:
-
请提供一个最小可重复性示例
-
@mozway 检查编辑
-
这是不可重现的,我无法在我的 python shell 中复制/粘贴 text 并获取要使用的对象;)
-
@mozway 立即查看,抱歉没有第一时间收到
标签: python-3.x pandas dataframe function mapping