python - 查找 Pandas Dataframe 列中某个区间内值的频率

标签 python pandas dataframe count pandas-groupby

我有一个 pandas 数据框,数据框中的一列具有这些值。

df['column'] = [84.0, 85.0, 75.0, nan, 51.0, 50.0, 70.0, 85.0 ... ]

我正在尝试获取在类似间隔之间获取值的频率

freq = {
    15 : 40,  # number of values between 10 and 20 were 40. (mean taken to be 15)
    25 : 47,  # number of values between 20 and 30 were 47. (mean taken to be 25)
    ...
}

pandas 中是否有任何特定函数可以执行此类操作,而不是进行 for 循环并检查每个值并增加 freq 字典中的计数?

[编辑]我的目标是得到一个像这样的字典,然后按照freq.values的比例用freq.keys()替换NaN ()

谢谢

最佳答案

# create intervals
bins = pd.interval_range(0, 100, freq=10)

# assign each value in df["column"] to bin and count bin occurences
counts = pd.cut(df["column"], bins).value_counts()

# create a Series, indexed by interval midpoints and convert to dictionary
pd.Series(counts.values, index=bins.mid).to_dict()

关于python - 查找 Pandas Dataframe 列中某个区间内值的频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71317197/

相关文章:

r - 使用 dplyr 和 add_row() 在每个组中添加行

python - 合并数据帧而不复制 python pandas 中的行

python - 对 ssdeep 的 fuzzy.dll 使用 Python Ctypes 但收到错误

python - 如何使用 ChromeOptions 使用 ChromeDriver 禁用 Python Selenium 中的 CSS

python - lark 语法 : How does the escaped string regex work?

python - 如何加快我的代码在 NLP 问题中清理文档的速度

python - 如何在Python中获取季度开始日期

python - 选择 pandas groupby 中的前 n 项并计算平均值

python-3.x - 如何避免在 pandas.read_excel 中读取空行

python - 如何使用 Python 显示值构建从正百分比到负百分比的水平堆积条形图