在Pandas中查找彼此间隔的特定条目

时间:2016-05-03 12:18:01

标签: python python-2.7 pandas dataframe

我需要为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来实现这一点,因为它会更快。感谢

1 个答案:

答案 0 :(得分:0)

您可以使用pandas cut函数来存储变量。

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

对其进行统计