【问题标题】:Find all entries within a certain interval of each other in Pandas在 Pandas 中查找彼此一定间隔内的所有条目
【发布时间】:2016-05-03 12:18:01
【问题描述】:

我需要为 pandas DataFrame 的每一列查找包含在某个间隔(错误)内的所有条目(并按索引对它们进行分组)。 +/- 0.2 区间的示例:

myDataFrame:
    A    B    C
0  1.1  1.3  1.5
1  0.7  0.1  -0.5
2  1.2  1.9  1.3
3  0.1  0.0  -0.3
4  0.2  0.1  -0.1

结果是:

A 列:{0,2}、{3,4}

B 列: {1,3,4}

C 列:{0,2}、{1,3}、{3,4}

这可能吗?我知道我可以执行多个 for 循环来迭代每一行和每一列,我只是想知道是否有任何方法可以使用 pandas 来做到这一点,因为它会更快。谢谢

【问题讨论】:

    标签: python python-2.7 pandas dataframe


    【解决方案1】:

    您可以使用 pandas 的 cut 函数对变量进行 bin 处理。

    import pandas as pd    
    df.loc[:, 'C_bins'] = pd.cut(df.C, bins=[.2*x for x in range(-10, 10)])
    

    产量

         A    B    C        C_bins
    0  1.1  1.3  1.5    (1.4, 1.6]
    1  0.7  0.1 -0.5  (-0.6, -0.4]
    2  1.2  1.9  1.3    (1.2, 1.4]
    3  0.1  0.0 -0.3  (-0.4, -0.2]
    4  0.2  0.1 -0.1     (-0.2, 0]
    

    您可以从那里将它们与groupby 分组或将它们与value_counts 一起计数

    【讨论】:

      猜你喜欢
      • 2017-12-23
      • 2019-11-19
      • 1970-01-01
      • 2022-01-07
      • 1970-01-01
      • 2019-03-14
      • 2019-08-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多