当前位置: 首页 > 面试题库 >

pandas如何使用pd.cut()

单嘉泽
2023-03-14
问题内容

这是代码段:

test = pd.DataFrame({'days': [0,31,45]})
test['range'] = pd.cut(test.days, [0,30,60])

输出:

    days    range
0   0       NaN
1   31      (30, 60]
2   45      (30, 60]

我很惊讶0不在(0,30]中,我应该怎么做才能将0归类为(0,30]?


问题答案:

test[‘range’] = pd.cut(test.days, [0,30,60], include_lowest=True)
print (test)
days range
0 0 (-0.001, 30.0]
1 31 (30.0, 60.0]
2 45 (30.0, 60.0]


看区别:

test = pd.DataFrame({'days': [0,20,30,31,45,60]})

test['range1'] = pd.cut(test.days, [0,30,60], include_lowest=True)
#30 value is in [30, 60) group
test['range2'] = pd.cut(test.days, [0,30,60], right=False)
#30 value is in (0, 30] group
test['range3'] = pd.cut(test.days, [0,30,60])
print (test)
   days          range1    range2    range3
0     0  (-0.001, 30.0]   [0, 30)       NaN
1    20  (-0.001, 30.0]   [0, 30)   (0, 30]
2    30  (-0.001, 30.0]  [30, 60)   (0, 30]
3    31    (30.0, 60.0]  [30, 60)  (30, 60]
4    45    (30.0, 60.0]  [30, 60)  (30, 60]
5    60    (30.0, 60.0]       NaN  (30, 60]

或使用numpy.searchsorted,但dayshast的值必须排序

arr = np.array([0,30,60])
test['range1'] = arr.searchsorted(test.days)
test['range2'] = arr.searchsorted(test.days, side='right') - 1
print (test)
   days  range1  range2
0     0       0       0
1    20       1       0
2    30       1       1
3    31       2       1
4    45       2       1
5    60       2       2


 类似资料:
  • 问题内容: 我有 我想为每个运行一些,所以所需的输出如下所示: 这是我尝试的: 和 这是我得到的错误: 问题答案: 您可以调用并传递函数以将该列添加到df中: 关于错误,您无法调用Series groupby对象,其次,您将列名作为无意义的列表传递。 所以这有效:

  • 现在,每次运行脚本时,我都会导入一个相当大的作为数据帧。有没有一个好的解决方案可以让数据帧在运行之间不断可用,这样我就不用花那么多时间等待脚本运行了?

  • 问题内容: 使用以下DataFrame,如何在不让Pandas将移位后的值分配给其他索引值的情况下基于索引来移位“ beyer”列? 生产… 问题在于,佩恩特得到了分配最后一位战士的啤酒。相反,我希望它像这样… 问题答案: 使用应用转移到各组分别:(感谢Jeff指出这个简化) 如果您有一个多索引,则可以通过将一系列或级别名称传递给 参数来对多个级别进行分组。

  • 我正在尝试根据两个数据页中共享的“别名编号”列名合并两个数据页。 以下是我所写的内容:

  • null 我现在的代码: 此代码返回。我知道这是因为对于表行,我使用的是,默认情况下它在空格上拆分。由于有些列缺少值,因此对于第二个和htird表,表头中的元素数和表行中的元素数不匹配。我正在努力解决这个问题,因为表示缺失值的空格字符的数量对于每个表来说是不同的。 我的问题是:是否有一种方法可以解释某些列中丢失的值,以便在丢失值为null或NaN的情况下获得一个DataFrame作为输出?

  • 问题内容: 我有一个熊pandas据框,其中有一列我想zscore归一化的实数值: 问题在于,单个值将构成所有数组: 将(或不是scipy的等效功能)应用于pandas数据框的列并使其忽略值的正确方法是什么?我希望它与原始列具有相同的尺寸,并且具有无法归一化的值 编辑 :也许最好的解决方案是使用和?我不明白为什么为此需要更改自由度: 问题答案: 井的版本和将到手的,所以你可以只计算这样(得到相同S