区间显示负值

Interval show negative values

我想获取列的分布。范围是价格,整数是该范围内的销售数量。

df1=df['column'].value_counts(bins=15, sort=False)

(-2,000.0000, 42,000.0000]
103
(42,000.0000, 83,000.0000]
880
(83,000.0000, 125,000.0000]
649
(125,000.0000, 167,000.0000]
390
(167,000.0000, 208,000.0000]
257
(208,000.0000, 250,000.0000]
211
(250,000.0000, 292,000.0000]
158
(292,000.0000, 333,000.0000]
105

我敢肯定 df.column 中没有小于零的值,但出于某种原因,在上面的示例中,范围从 -2000 开始。有没有办法在我的间隔中没有负数的情况下获得相同的结果,即 df.column 的最小值作为第一个间隔的左侧?

这是一个很好的问题,我不知道为什么起始 bin 小于您列中的最小值。我已经能够重复你的观察。

通过传递由 np.arange 创建的 bin 位置列表,您可以更好地控制 bin 的开始和停止位置,就像这个例子

import pandas as pd
import numpy as np

np.random.seed(1)
df = pd.DataFrame({
    'column':np.random.randint(2,2000,20)
})

#make the bins yourself
num_bins = 15
min_val = df['column'].min()
max_val = df['column'].max()
bin_size = (max_val-min_val)//num_bins
bins = np.arange(min_val,max_val,bin_size)

df1=df['column'].value_counts(bins=bins, sort=False)
print(df1)