如何在中获得适当的级别表示Pandas剪了?

2024-10-05 10:12:51 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有一种简单的方法可以获得熊猫。切?在

例如:

import pandas as pd
x = pd.cut(np.arange(0,20), 10)

x
Out[1]: 
 (-0.019, 1.9]
 (-0.019, 1.9]
    (1.9, 3.8]
    (1.9, 3.8]
    (3.8, 5.7]
    (3.8, 5.7]
    (5.7, 7.6]
    (5.7, 7.6]
    (7.6, 9.5]
    (7.6, 9.5]
   (9.5, 11.4]
   (9.5, 11.4]
  (11.4, 13.3]
  (11.4, 13.3]
  (13.3, 15.2]
  (13.3, 15.2]
  (15.2, 17.1]
  (15.2, 17.1]
    (17.1, 19]
    (17.1, 19]
Levels (10): Index(['(-0.019, 1.9]', '(1.9, 3.8]', '(3.8, 5.7]',
                    '(5.7, 7.6]', '(7.6, 9.5]', '(9.5, 11.4]',
                    '(11.4, 13.3]', '(13.3, 15.2]', '(15.2, 17.1]',
                    '(17.1, 19]'], dtype=object)

我想要的是:

^{pr2}$

或者其他更适合操纵的表现形式。相反,我们使用x.levels来获取索引,但是这个表示是一个unicode对象,所以我必须使用几个循环来获得我想要的。在

更新

顺便说一下,我需要一个能处理第二个参数中的一系列值的解决方案:pd.cut(np.arange(0,20), arr)


Tags: 方法importpandasindexobjectasnpout
2条回答

你可以这样做,但最好解释一下你实际上在做什么;例如,你已经有了范畴变量。在

In [27]: x, bins = pd.cut(np.arange(0,20), 10, retbins=True)

In [28]: [ [ round(l,3), round(r,3) ] for l, r in zip(bins[:-1],bins[1:]) ]
Out[28]: 
[[-0.019, 1.9],
 [1.9, 3.8],
 [3.8, 5.7],
 [5.7, 7.6],
 [7.6, 9.5],
 [9.5, 11.4],
 [11.4, 13.3],
 [13.3, 15.2],
 [15.2, 17.1],
 [17.1, 19.0]]

可以通过以下代码从unicode列表转换为数组:

import pandas as pd
x = pd.cut(np.arange(0,20), 10)
np.array(map(lambda t:t[1:-1].split(","), x.levels), float)

相关问题 更多 >

    热门问题