熊猫切出的垃圾较少

时间:2020-10-22 13:49:23

标签: python-3.x pandas numpy

考虑以下使用以下代码生成的数据框:

import numpy as np
import pandas as pd

# number of data points
n = 1000

# generate data - log-normal distribution
data = np.exp( np.random.randn(n)/2 ) 

# convert data (array) into a dataframe
df = pd.DataFrame(data=data, columns=['counts'])

我正在尝试将df['counts']下的值分组/聚合到40个大小相等的bin中(类型应为str-稍后我要在直方图的x轴上进行绘制)。换句话说,我想在intervals上添加一个新列(df),每个值(counts)所属的间隔。以下是我用来生成df['intervals']的代码:

df['intervals'] =  pd.cut(df['counts'], bins=40).astype('str').to_numpy()

但是我没有得到df['intervals']下的40个唯一值,而是得到36

len(df['intervals'].unique()) # returns 36

有人将值传递给pd.cut()时,为什么我得到36而不是40?

1 个答案:

答案 0 :(得分:0)

您也可以稍后更改其类型,是否尝试了不使用astype('str')吗?