python - Pandas groupby,包含和求和

标签 python pandas

                             BUILDING                 UNITS
0                      01 ONE FAMILY DWELLINGS        168.0
1                      02 TWO FAMILY DWELLINGS        269.0
2                    03 THREE FAMILY DWELLINGS        234.0
3                        04 TAX CLASS 1 CONDOS          0.0
4                       06 TAX CLASS 1 - OTHER          0.0
5               07 RENTALS - WALKUP APARTMENTS      10232.0
6             08 RENTALS - ELEVATOR APARTMENTS      15136.0
7                 09 COOPS - WALKUP APARTMENTS          0.0
8               10 COOPS - ELEVATOR APARTMENTS          0.0
9                            11A CONDO-RENTALS          0.0
10               12 CONDOS - WALKUP APARTMENTS          0.0
11             13 CONDOS - ELEVATOR APARTMENTS          0.0
12                      14 RENTALS - 4-10 UNIT        534.0
13           15 CONDOS - 2-10 UNIT RESIDENTIAL          0.0

我希望能够对包含字符串的事物进行分组。例如,在这里,我想将所有公寓示例归为一个类别,其中包含一个单位总和,同样,租金将被归为租金。其余不属于任何相关类别的将归为其他。

我知道这会选择包含公寓的那些,但是您如何将它们分组并将它们的单元汇总为一个类别?

df[df['BUILDING'].str.contains("CONDO")]

我正在寻找这样的东西:

Building Units
Other      #
Condos     #sum condos
Rentals    #sum rentals

最佳答案

使用numpy.select为构建单元创建标记,并将其用于 groupby 操作

df["BUILDING UNITS"] = np.select(
    condlist=[
        df["BUILDING"].str.contains("CONDO"),
        df["BUILDING"].str.contains("DWELLINGS"),
    ],
    choicelist=[
        "Condos", "Rentals"
    ],
    default="Other"
)

df.groupby("BUILDING UNITS").sum()

                  UNITS
BUILDING UNITS
Condos              0.0
Other           25902.0
Rentals           671.0

关于python - Pandas groupby,包含和求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58400294/

相关文章:

Python循环遍历Dataframe 'Series'对象没有属性

python - 运行 Python 教程并停留在函数上

python - 海伯恩/Matplotlib : how to access line values in FacetGrid?

python - 通过 id 列表过滤 pandas 数据框

python - 删除 pandas 中的列

python - 如何确定轮廓是否已从Python/OpenCV中的边缘移开

python - 如何从 Python 中的类内部访问类方法

python - 有效地计算非零值的运行

python - Pandas 插值在最后一个数据点之后替换 NaN,但不在第一个数据点之前

pandas - 将 Pandas DataFrame 转换为类似字节的对象