Python pandas.cut()
Python pandas.cut()
我有以下数组:
array.unique()
array(['10','8', '15','20','21','22 '27','28' nan, '30', '32', '33', 'Values']
我正在尝试分配以下类别标签并将它们放入相应的容器中:'not_number'、“10 岁及以下”、“11”-“32”、“33 及以上”使用 pd.cut() 结果应该是:
'not_number' 2 <= this includes ('Values', nan)
'10 and below' 2
'11'- '32' 9
'33 and up' 1
如果传递 non-int 数组数据类型,cut 方法会引发 TypeError。我建议的解决方案是从数组传递到列表以管理不同的数据类型。在这种情况下,您可以使用列表理解将 nan
和 'Values'
替换为负数。使用此集合,您可以在列表上使用 pd.cut 方法并标记数据。
a = np.array(['10','8', '15', '20','21','22', '27', '28', 'nan', '30', '32', '33', 'Value'])
a_list = [int(i) if i.isdigit() else -1 for i in c]
bins = pd.IntervalIndex.from_tuples([(-np.Inf, 0), (0, 10), (10, 32), (32, np.Inf)])
lab = ['Not a Value', '10 and below', '11 - 32', '33 and above']
a_cut = pd.cut(s, bins)
a_cut.categories = lab
print(a.value_counts())
我有以下数组:
array.unique()
array(['10','8', '15','20','21','22 '27','28' nan, '30', '32', '33', 'Values']
我正在尝试分配以下类别标签并将它们放入相应的容器中:'not_number'、“10 岁及以下”、“11”-“32”、“33 及以上”使用 pd.cut() 结果应该是:
'not_number' 2 <= this includes ('Values', nan)
'10 and below' 2
'11'- '32' 9
'33 and up' 1
如果传递 non-int 数组数据类型,cut 方法会引发 TypeError。我建议的解决方案是从数组传递到列表以管理不同的数据类型。在这种情况下,您可以使用列表理解将 nan
和 'Values'
替换为负数。使用此集合,您可以在列表上使用 pd.cut 方法并标记数据。
a = np.array(['10','8', '15', '20','21','22', '27', '28', 'nan', '30', '32', '33', 'Value'])
a_list = [int(i) if i.isdigit() else -1 for i in c]
bins = pd.IntervalIndex.from_tuples([(-np.Inf, 0), (0, 10), (10, 32), (32, np.Inf)])
lab = ['Not a Value', '10 and below', '11 - 32', '33 and above']
a_cut = pd.cut(s, bins)
a_cut.categories = lab
print(a.value_counts())