【问题标题】:For loop within a Pandas dataframe to add a new column after each iteration [duplicate]Pandas数据框中的for循环在每次迭代后添加一个新列[重复]
【发布时间】:2021-02-02 00:20:32
【问题描述】:

我有一个数据框,它在建筑物数据集上具有各种属性。这些建筑物都被分配到一个住宅组(公寓/半独立式住宅/独立式住宅/排屋)和一个小区号。这些建筑物也有一年的建造柱,但是除了它们的小面积(大约 80 座建筑物)之外没有唯一标识符。

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

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

In [20]: geo_dwelling.head(5)

输出[20]: cso_small_area 都柏林 邮政编码 建造年份 建造年份 住宅类型描述 能源等级 ... height_ag height_bg floor_ag floor_bg category 住宅组 7101 268109005 DUBLIN 1 2009.0 2005 起B3 ... 10.02 0 3 0 R 公寓 7101 268109005 DUBLIN 1 2009.0 2005 起B3 ... 10.73 0 3 0 R 公寓 7101 268109005 DUBLIN 1 2009.0 2005 起B3 ... 10.56 0 3 0 R 公寓 7101 268109005 DUBLIN 1 2009.0 2005 起B3 ... 10.75 0 3 0 R 公寓 7101 268109005 DUBLIN 1 2009.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()

非常感谢任何帮助!

【问题讨论】:

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


    【解决方案1】:

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

    How to iterate over rows in a DataFrame in Pandas

    【讨论】:

    • 非常感谢!抱歉,这是我的第一篇文章,所以我确信我刚刚所做的事情有很多不好的做法!
    • @oinsdoherty3,没问题。这很正常 :-) 如果对你有好处,你能接受这个答案是正确的吗?
    • 现在完成!再次感谢
    猜你喜欢
    • 1970-01-01
    • 2019-03-27
    • 1970-01-01
    • 2015-03-19
    • 1970-01-01
    • 2016-08-25
    • 1970-01-01
    • 1970-01-01
    • 2020-08-31
    相关资源
    最近更新 更多