我有一个以这种方式组织的地址列表的数据框:
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
如何使用熊猫排序数据?
答案 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