Pandas数据框合并迭代。如何避免列表和表头行

2024-05-16 21:17:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我只是偶尔编写一次代码,现在我是超级基本的。可能是个愚蠢的问题,但这让我陷入了有点太多

背景

我有一个函数(get_profiles),它沿着一条样条线(100m长)每隔5m绘制一个点,并(从一个geotiff中)提取高程。 这些论点是:

  • 数字表面模型
  • 横断面文件(地理包,包含许多具有不同横断面ID的线串)
  • 横断面图id(int,从横断面图文件中提取)
  • 步长(int,沿样条线提取高程的米数)

一个样条线的输出是一个数据帧,如图所示,这是我所期望的,我喜欢它

enter image description here

但是,当我在transect_ids(transect\u文件有10个形状优美的线串)上迭代函数时,会遇到一个大问题,如下所示:

tr_list = np.arange(1,transect_file.shape[0]-1)  
geodb_transects= []
for i in tr_list:
        temp=get_profiles(dsm,transect_file,i,5)
        geodb_transects.append(temp)

我有一张单子。这可能是这里的错误,但我不知道如何用另一种方式

 type(geodb_transects)
 output:list

而且,更糟糕的是,每次新的迭代开始时,我都会得到头(distance, z, tr_id, date

enter image description here

如何获得一个干净的数据帧,就像1次迭代(20行)的输出一样,但是每个20行的tru id块都对齐并且没有标题


Tags: 文件数据函数idgetprofilestrlist
1条回答
网友
1楼 · 发布于 2024-05-16 21:17:34

如果您的输出是DataFrame,那么您只需要将增量数据帧连接到一些增长的数据帧中

这不是最有效的,但差不多

import pandas

df = pandas.DataFrame()
for i in range(7) :
    df = df.concat( df_ret_func(i))

如果您有一个元素列表,这些元素都是相同形式的记录,并且可以转换为数据帧的行,那么您可能还对from_recordsfunction感兴趣

相关问题 更多 >