Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将数据正确地保存到列表中,然后在python中将其转换为数据帧?_Python_List_Dataframe_Append_Centroid - Fatal编程技术网

如何将数据正确地保存到列表中,然后在python中将其转换为数据帧?

如何将数据正确地保存到列表中,然后在python中将其转换为数据帧?,python,list,dataframe,append,centroid,Python,List,Dataframe,Append,Centroid,我有一个GeoDataFrame,其中包含关于建筑物的信息(建筑物编号、几何图形),我需要从中创建另一个GeoDataFrame,其中包含关于建筑物中心点(质心)的信息,这些信息具有相同的列(建筑物编号、几何图形) 我的想法是首先创建一个空列表,并将结果附加到列表中: import geopadnas as gpd result = [] centroids = gpd.GeoSeries(My_GDF.centroid) result.append([My_GD

我有一个GeoDataFrame,其中包含关于建筑物的信息(建筑物编号、几何图形),我需要从中创建另一个GeoDataFrame,其中包含关于建筑物中心点(质心)的信息,这些信息具有相同的列(建筑物编号、几何图形)

我的想法是首先创建一个空列表,并将结果附加到列表中:

    import geopadnas as gpd
    result = []
    centroids = gpd.GeoSeries(My_GDF.centroid)
    result.append([My_GDF['Buliding_Number'],centroids])
    print(result)
但这对我来说不起作用,结果是:

[[0     61
1      5
2     22
3    NaN
4      7
5    NaN
6    NaN
7     5D
Name: BUI_NUMBER, dtype: object, 0    POINT (21.04572 52.14893)
1    POINT (21.02783 52.07371)
2    POINT (20.97048 52.22921)
3    POINT (20.93536 52.25316)
4    POINT (20.93575 52.25281)
5    POINT (20.93293 52.24256)
6    POINT (20.93444 52.24029)
7    POINT (20.93574 52.25361)
dtype: geometry]]
我想我需要这样的输出:

[[61, 5, 22, NaN, 7, NaN, NaN, 5D],[POINT (21.02783 52.07371, ..., POINT (20.93574 52.25361)]]
因为我想把它转换成GeoDataFrame(我知道怎么做)。 是否有任何方法可以按照我想要的方式将数据附加到列表中?或者我可以把它从我现在的输出转换成GDF? 总而言之,我的想法是:

  • 创建质心,然后创建一个列表,其中包含有关建筑编号和质心的信息
  • 其次,将其转换为数据帧:
  • 然后转到GeoDataFrame:

您是否希望通过这项工作来创建新的GeoDataFrame?(顺便说一句,“Building”键中有一个类型)


中对此进行了探索。您是否希望通过这项工作来创建新的GeoDataFrame?(顺便说一句,“Building”键中有一个类型)


我们在

中对此进行了探讨是的,这当然是可能的,您可以使用Python创建所需的数据结构。你发布的链接显示了一些例子,如人物列表=['Jon','Smith',21],'Mark','Brown',38],'Maria','Lee',42],'Jill','Jones',28],'Jack','Ford',55];df=DataFrame(People\u List,columns=['First\u Name','Last\u Name','Age']),GDF可能总是这样,一个包含数据列表的名称键,通过索引匹配?数据帧({'City':['Buenos Aires','Barsilia','Santiago','Bogota','Caracas','Country':['Argentin','Brazil','Chile','Colombia','委内瑞拉','Latitude':[-34.58,--15.78,--33.45,4.60,10.48],'Longitude':[-58.66,--47.91,--70.66,--74.08,--66.86]))是的,这当然是可能的,可以使用Python创建所需的数据结构。你发布的链接显示了一些例子,如人物列表=['Jon','Smith',21],'Mark','Brown',38],'Maria','Lee',42],'Jill','Jones',28],'Jack','Ford',55];df=DataFrame(People\u List,columns=['First\u Name','Last\u Name','Age']),GDF可能总是这样,一个包含数据列表的名称键,通过索引匹配?df=pd.数据帧({‘城市’:[‘布宜诺斯艾利斯’、‘巴西利亚’、‘圣地亚哥’、‘波哥大’、‘加拉加斯’,‘国家’:[‘阿根廷’、‘巴西’、‘智利’、‘哥伦比亚’、‘委内瑞拉’,‘纬度’:[-34.58、-15.78、-33.45、4.60、10.48],‘经度’:[-58.66、-47.91、-70.66、-74.08、-66.86])
df = pandas.DataFrame(
  {
    'BuildingID': My_GDF['Buliding_Number']
  #, centroids however those are put
  }
)

gdf = geopandas.GeoDataFrame(df, geometry=geopandas.points_from_xy(df.Longitude, df.Latitude))