我有以下df:
Column 1
1
2435
3345
104
505
6005
10000
80000
100000
4000000
4440
520
...
这种结构不是最好的直方图,这是主要目的。箱子也没有真正解决问题,至少从我迄今为止测试的那个方面来说。这就是为什么我喜欢在新专栏中创建自己的箱子的原因:
我基本上想要将第1列中某个范围内的每个值分配给第2列中的一个桶,以便它看起来像这样:
Column 1 Column2
1 < 10000
2435 < 10000
3345 < 10000
104 < 10000
505 < 10000
6005 < 10000
10000 < 50000
80000 < 150000
100000 < 150000
4000000 < 250000
4440 < 10000
520 < 10000
...
一旦我到达那里,创建一个情节会容易得多。
谢谢!
答案 0 :(得分:2)
有一个与此cut
相当的pandas,有一个描述此here的部分。 cut
返回每个值的开放关闭时间间隔:
In [29]:
df['bin'] = pd.cut(df['Column 1'], bins = [0,10000, 50000, 150000, 25000000])
df
Out[29]:
Column 1 bin
0 1 (0, 10000]
1 2435 (0, 10000]
2 3345 (0, 10000]
3 104 (0, 10000]
4 505 (0, 10000]
5 6005 (0, 10000]
6 10000 (0, 10000]
7 80000 (50000, 150000]
8 100000 (50000, 150000]
9 4000000 (150000, 25000000]
10 4440 (0, 10000]
11 520 (0, 10000]
列的dtype是Category
,可用于过滤,计数,绘图等。
答案 1 :(得分:1)
numpy.histogram
接受一个bins
参数,该参数可以是一个整数数组,并返回这些二进制数内的计数数组。所以,如果你运行
import numpy as np
counts, _ = np.histogram(df[`Column 1`].values, [10000, 50000, 150000, 250000])
你将拥有你想要的垃圾箱。从这里,你可以做任何你想做的事情,包括绘制每个箱子里的计数数量:
plot(counts)