考虑以下使用以下代码生成的数据框:
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?
答案 0 :(得分:0)
您也可以稍后更改其类型,是否尝试了不使用astype('str')吗?