Python实现分组排序

Python实现分组排序

需求1:按照药品名称(ADVICE_CONTENT)分组,排序。

第一种实现方式


import pandas as pd

base_dire = './result/xx.csv'
result_file = './result/drug_group_desc.csv'

df = pd.read_csv(base_dire,engine='python',encoding='utf-8',usecols=['ADVICE_CONTENT'])
#第一种方式使用size函数添加每一组出现的次数,类似sql中的count;
drug_name_group_desc = df.groupby('ADVICE_CONTENT').size().reset_index(name='count').sort_values(by=['count'],ascending=(False))
#第二种方式使用count函数添加每一组出现的次数,类似sql中的count;
# drug_name_group_desc = df.groupby('ADVICE_CONTENT')['ADVICE_CONTENT'].count().reset_index(name='count').sort_values(by=['count'],ascending=(True))

drug_name_group_desc.to_csv(result_file, index=False)


'''
思路:
1.按照"药品名称"分组 2.使用size函数获得组别个数 3.reset_index 重置索引,添加count列 4.按照count列降序

学习:
1.ascending=(True) 升序,ascending=(False) 降序
2.groupby('ADVICE_CONTENT')  按照一个字段分组
3.groupby(by=['ADVICE_CONTENT','count']) 按照两个字段分组

#Python技巧之对DataFrame进行多列排序
https://blog.csdn.net/m0_37637511/article/details/79901071
#pandas之分组groupby()的使用整理与总结
https://blog.csdn.net/FrankieHello/article/details/97272990
'''

第二种实现方式


import pandas as pd

base_dire = './result/xx.csv'
result_file = './result/drug_group_desc.csv'
#定义DataFrame列名
df_colums = ['ADVICE_CONTENT','count']
#定义1个DataFrame
df_result = pd.DataFrame(columns=df_colums)

#engine='python' 读取csv报错,所以加了这个参数;encoding='utf-8' 指定编码;usecols参数通过"列名"获取数据;
df = pd.read_csv(base_dire,engine='python',encoding='utf-8',usecols=['ADVICE_CONTENT'])

df2= df['ADVICE_CONTENT'].value_counts(ascending=False) #默认降序 ascending=True 为升序
# print(type(df2))

#遍历1个Series
for index,value in df2.items():
    drug_name = index
    count = value
    #定义1个DataFrame
    df_temp = pd.DataFrame([[drug_name,count]],columns=df_colums)
    #使用append函数,往”df_result“添加DataFrame数据
    df_result = df_result.append(df_temp, ignore_index=True)

df_result.to_csv(result_file,index=False)

需求2:按照药品名称(ADVICE_CONTENT)分组,根据patient_id排序。


import pandas as pd

base_dire = './result/xx.csv'
result_file = './result/drug_group_desc.csv'

df = pd.read_csv(base_dire,engine='python',encoding='utf-8',usecols=['ADVICE_CONTENT','patient_id'])
df.drop_duplicates(inplace=True) #去重

# df2 = df.groupby(['ADVICE_CONTENT']).size().reset_index(name='count').sort_values(by=['count'],ascending=(False))
df2 = df.groupby(['ADVICE_CONTENT'])['ADVICE_CONTENT'].count().reset_index(name='count').sort_values(by=['count'],ascending=(False)) #降序,ascending=True为升序

#转成1个列表
# print(df2['ADVICE_CONTENT'].tolist())
# print(df2['count'].tolist())
df2.to_csv(result_file, index=False)

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中,进行数据分组排序是非常常见的操作。要实现分组排序,可以使用多种工具。其中,pandas是进行数据分析的首选工具,它提供了强大的分组排序功能。使用pandas,你可以使用groupby方法对数据进行分组,并使用sort_values方法对每个组的数据进行排序。例如,你可以按照某一列的值进行分组,然后按照另一列的值进行排序。 另外,numpy也在处理数值计算方面表现出色,可以用来进行分组排序。numpy提供了例如argsort等函数,可以根据指定的条件对数组进行排序。 此外,Python的标准库也提供了简单而强大的分组排序工具。例如,你可以使用itertools.groupby函数对数据进行分组,然后使用sorted函数对每个组的数据进行排序。具体的实现方式可以参考引用中的示例代码。 总之,在Python中进行分组排序有多种选择,可以根据实际需求和数据类型选择合适的工具进行操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [chatgpt赋能pythonPython分组排序完全指南](https://blog.csdn.net/lvsetongdao123/article/details/131098789)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值