我想通过创建一个将数字列表转换为组的函数来对一些数字列表进行分组,然后将这些数字转换为熊猫数据框,但它不起作用。
列表 = [ 10, 50, 80, 12, 5, 8, 19, 90, 40, 8, 7, 9, 18, 27, 30, 45]
def number_group(x):
item = [ ]
for i in x:
if i in range(0, 30):
print (' group 10 and 30')
elif i in range(30, 60):
print ('group 30 and 60')
elif i in range (60, 90):
print ('group 60 and 90')
elif i in range (90, 120):
print ('group 90 and 120')
else:
return ('NAN')
item.append((i))
return
当我将我的列表传递给函数并尝试将结果转换为熊猫数据帧时,我一直没有得到。 知道如何完成这些吗?
答案 0 :(得分:0)
list=number_group([ 10, 50, 80, 12, 5, 8, 19, 90, 40, 8, 7, 9, 18, 27, 30,45])
df=pd.DataFrame(list,columns=['Number_Group'])
答案 1 :(得分:0)
这称为binning,命令是pd.cut(x, bins)
。作为奖励,它为超出范围的值提供 NaN:
ll = [10, 50, 80, 12, 5, 8, 19, 90, 40, 8, 7, 9, 18, 27, 30, 45, -1, 333]
binned = pd.cut(ll, [0, 30, 60, 90, 120], ordered=True)
[(0, 30], (30, 60], (60, 90], (0, 30], (0, 30], ..., (0.0, 30.0], (0.0, 30.0], (30.0, 60.0], NaN, NaN]
Length: 18
Categories (4, interval[int64]): [(0, 30] < (30, 60] < (60, 90] < (90, 120]]
注意输出是 pandas Categorical
。它给出了与您想要的相似的类别名称。