# 建立Dataframe数据
colunms = ['STCD','ADDVCD','DYP']
df = pd.DataFrame(result, columns=column)
# 单纯按STCD分组,并取每个组DYP数据的个数
df1 = df.groupby('STCD', as_index=False).count() # 按'STCD'字段分组,获得每个SCTD字段对应
# DYP的个数,填入DYP字段
# 分组、排序、取值
ASTERS = pd.DataFrame()
STCDS = []
# 按ADDVCD分组
groups = df.groupby('ADDVCD')
addvcds = groups.size().index.tolist() # 获取所有ADDVCD
# 对每个ADDVCD对应DYP数据进行排序并取前30%,存放到ASTERS
for addvcd in addvcds:
# 按addvcd分组降序
addvcd_data = groups.get_group(addvcd).sort_values(by="DYP", ascending=False)
# 取分组降序后排名前30%的数组
addvcd_data = addvcd_data[0:math.ceil(len(addvcd_data)*0.3)]
# 将所有addvcd分组、排序、取30%后的数据存放到ASTERS数组中
ASTERS = ASTERS.append(addvcd_data)
PYTHON 对Dataframe进行分组、排序并取规定行数的数据
最新推荐文章于 2024-04-28 21:22:27 发布