python对列表list进行分段统计

时间:2025-02-26 10:59:15
第一种方法:
list = [57, 478, 37209, 35, 406, 181, 49, 264, 96, 26648, 238, 36600]
intervals = {'{}-{}'.format(3600*x+1,3600*(x+1)):0 for x in range(24)}   
for list in total_list:
    for interval in intervals:
        print(interval)
        start,end = tuple(('-'))
        if int(start)<=list<=int(end):
            intervals[interval] +=1
print(intervals)

 

第二种方法将list转化为dataframe
import pandas as pd
ages = [18, 22, 25, 27, 21, 23, 37, 31, 61, 90]
data = ({"value":ages})
cats1 = (data['value'].values, bins=[18, 25, 35, 60, 90,data['value'].max()+1])
pinshu = cats1.value_counts() 
pinshu_df = (pinshu, columns=['频数'])
pinshu_df['频率f'] = pinshu_df / pinshu_df['频数'].sum()
pinshu_df['频率%'] = pinshu_df['频率f'].map(lambda x: '%.2f%%' % (x * 100))
pinshu_df['累计频率f'] = pinshu_df['频率f'].cumsum()
pinshu_df['累计频率%'] = pinshu_df['累计频率f'].map(lambda x: '%.4f%%' % (x * 100))
print(pinshu_df)