第一种方法: 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)