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