Python中计算列表内浮点数出现频率(需返回两个独立列表)
计算Python浮点数列表的元素频率
需求说明
需要统计Python列表中浮点数的出现频率,禁止将浮点数转为整数(后续需直接操作浮点数),最终要得到两个独立列表:
- 去重后的浮点数元素列表
- 对应元素的出现频率列表
预期输出示例:
values = [21.963, 23.4131, 23.7639, 24.3934, 24.5237, 25.2829, 25.394] frequency = [1, 1, 1, 1, 1, 1, 1]
现有尝试代码
import pandas as pd values = [21.963, 23.4131, 23.7639, 24.3934, 24.5237, 25.2829, 25.394] df = pd.Series(values).value_counts().sort_index().reset_index().reset_index(drop=True) df.columns = ['Element', 'Frequency'] frequency = (df['Frequency'].values).tolist()
改进方案
现有代码已经拿到了频率列表,只需补充提取元素列表的逻辑即可,直接从处理后的DataFrame中提取Element列转为列表:
import pandas as pd values = [21.963, 23.4131, 23.7639, 24.3934, 24.5237, 25.2829, 25.394] df = pd.Series(values).value_counts().sort_index().reset_index(drop=True) df.columns = ['Element', 'Frequency'] # 提取两个目标列表 result_values = df['Element'].tolist() result_frequency = df['Frequency'].tolist() # 验证输出 print("values =", result_values) print("frequency =", result_frequency)
运行后会输出符合预期的两个列表,且所有浮点数保持原始精度,未被转为整数。
内容的提问来源于stack exchange,提问作者Qvch
相关产品推荐
相关产品推荐

