按一列中的最大和最小整数对数据帧进行分组

时间:2018-10-20 10:10:21

标签: python pandas dataframe

我有一个以这种方式组织的地址列表的数据框:

    number          street          city            state    zip
0     1           Green Av          Evergreen       FL       33000
1     2           Green Av          Evergreen       FL       33000
2     4           Green Av          Evergreen       FL       33000
3     1           Red Av            Evergreen       FL       33000
4     2           Red Av            Evergreen       FL       33000
5     5           Red Av            Evergreen       FL       33000
6     3           Main St           Evergreen       FL       33000
7     5           Main St           Evergreen       FL       33000
8     8           Main St           Evergreen       FL       33000

我正在寻找一种方法来获取不同df中每条街道的最小和最大门牌号,例如:

      street            city            state    zip       min_house#   max_house#
0     Green Av          Evergreen       FL       33000       1          4
1     Red Av            Evergreen       FL       33000       1          5
2     Main St           Evergreen       FL       33000       3          8

如何使用熊猫排序数据?

1 个答案:

答案 0 :(得分:1)

您可以将group by与最小值和最大值同时使用:

df = df.groupby('street').agg(['min','max'])
df.columns = [' '.join(col).strip() for col in df.columns.values]
cols = ['number min', 'number max', 'city min', 'state min', 'zip min']
df = df[cols]
df.rename(columns={'number min':'min', 'number max':'max', 'city min':'city', 
                  'state min':'state', 'zip min':'zip'},inplace=True)


df.reset_index(inplace=True)

     street  min  max       city state    zip
0  Green Av    1    4  Evergreen    FL  33000
1   Main St    3    8  Evergreen    FL  33000
2    Red Av    1    5  Evergreen    FL  33000