熊猫数据框内的for循环在每次迭代后添加新列

时间:2020-10-19 08:28:36

标签: python pandas for-loop pandas-groupby geopandas

我有一个数据框,该数据框在建筑物数据集中具有多种属性。这些建筑物全部分配给一个住宅组(公寓/半独立式房屋/独立式房屋/露台房屋)和一个小区号。这些建筑物也有一个“建设年份”列,但是除了它们的小面积(大约80座建筑物)外没有唯一的标识符。

我想编写一个for循环,将这些建筑物分组到他们的住所组中,然后将它们分解成较小的区域,并分别为其分配在那个小区域内该住所组的建筑年数中位数。例如,将小区域中的所有公寓划分为12345,并分别(在新列中)为该小区域中的公寓的建造年数分配它们。

到目前为止,geo_dwelling是带有列的GeoDataFrame;

In [20]: geo_dwelling.head(5)

出[20]: cso_small_area都柏林邮政编码建造年份建造年份住宅类型描述能耗等级... height_ag height_bg地板_ag地板_bg类别住宅集团 7101 268109005 DUBLIN 12009.0 2005年起中层公寓B3 ... 10.02 0 3 0 R公寓 7101 268109005 DUBLIN 12009.0 2005年起中层公寓B3 ... 10.73 0 3 0 R公寓 7101 268109005 DUBLIN 12009.0 2005年起中层公寓B3 ... 10.56 0 3 0 R公寓 7101 268109005 DUBLIN 12009.0 2005年起中层公寓B3 ... 10.75 0 3 0 R公寓 7101 268109005 DUBLIN 12009.0 2005年起中层公寓B3 ... 10.85 0 3 0 R公寓

geo_dwelling = geo_dropped[
geo_dropped["Dwelling Group"].str.contains("Apartment", na=False)]

geo_dwelling.groupby(["cso_small_area"])[["Year of construction"]].median()

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

在熊猫数据帧中创建“ for”循环通常被认为是不好的做法(也需要大量时间!)。我相信您的问题的答案就在于这篇文章:

How to iterate over rows in a DataFrame in Pandas