首页 > 解决方案 > 如何在 pandas.cut 中打印类别?

问题描述

请注意,当您将 pandas.cut 输入数据帧时,您会在输出中获得每个元素的 bin、Name:、Length:、dtype: 和 Categories。我只想为我打印 Categories 数组,这样我就可以获得我正在寻找的 bin 数量的范围。例如,将 bins=4 输入到数字“1,2,3,4,5”的数据帧中,我希望输出仅打印四个 bin 的范围,即 (1, 2], (2, 3], (3, 4], (4, 5]。

无论如何我可以做到这一点吗?它可以是任何东西,即使它不需要打印“类别”。

标签: pythonpandasrangecategoriesbins

解决方案


我猜你只是想从pd.cut(). 如果是这样,您可以简单地设置retbins=True,请参阅 例如的文档:pd.cut

在[01]:

data = pd.DataFrame({'a': [1, 2, 3, 4, 5]})
cats, bins = pd.cut(data.a, 4, retbins=True)

输出[01]:

cats

0    (0.996, 2.0]
1    (0.996, 2.0]
2      (2.0, 3.0]
3      (3.0, 4.0]
4      (4.0, 5.0]
Name: a, dtype: category
Categories (4, interval[float64]): [(0.996, 2.0] < (2.0, 3.0] < (3.0, 4.0] < (4.0, 5.0]]

bins

array([0.996, 2.   , 3.   , 4.   , 5.   ])

然后,您可以随心所欲地重复使用bins。例如,

lst = [1, 2, 3]
category = pd.cut(lst,bins)

推荐阅读