給定資料框的一列,在將其數值分為 10 組后,我嘗試為每個組分配一個標簽并創建一個由這些標簽組成的串列。為此,我需要檢查此列中的每個值位于哪個間隔之間,但是,根據我得到的錯誤
AttributeError: float object has no attribute 'between'
沒有“之間”命令來處理這個問題。
l2=[29.69911764705882, 32.5, 32.5, 54.0, 12.0, 29.69911764705882, 24.0, 29.69911764705882, 45.0, 33.0, 20.0, 47.0, 29.0,
25.0, 23.0, 19.0, 37.0, 16.0, 24.0, 29.69911764705882, 22.0, 24.0, 19.0, 18.0, 19.0, 27.0, 9.0, 36.5, 42.0, 51.0, 22.0,
55.5, 40.5, 29.69911764705882, 51.0, 16.0, 30.0, 29.69911764705882, 29.69911764705882, 44.0, 40.0, 26.0, 17.0, 1.0, 9.0,
29.69911764705882, 45.0, 29.69911764705882, 28.0, 61.0, 4.0, 1.0, 21.0, 56.0, 18.0, 29.69911764705882, 50.0, 30.0, 36.0,
29.69911764705882, 29.69911764705882, 9.0, 1.0, 4.0, 29.69911764705882, 29.69911764705882, 45.0, 40.0, 36.0, 32.0, 19.0,
19.0, 3.0, 44.0, 58.0, 29.69911764705882, 42.0, 29.69911764705882, 24.0, 28.0, 29.69911764705882, 34.0, 45.5, 18.0, 2.0,
32.0, 26.0, 16.0, 40.0, 24.0, 35.0, 22.0, 30.0, 29.69911764705882, 31.0, 27.0, 42.0, 32.0, 30.0, 16.0, 27.0, 51.0,
29.69911764705882, 38.0, 22.0, 19.0, 20.5, 18.0, 29.69911764705882, 35.0, 29.0, 59.0, 5.0, 24.0, 29.69911764705882,
44.0, 8.0, 19.0, 33.0, 29.69911764705882, 29.69911764705882, 29.0, 22.0, 30.0, 44.0, 25.0, 24.0, 37.0, 54.0,
29.69911764705882, 29.0, 62.0, 30.0, 41.0, 29.0, 29.69911764705882, 30.0, 35.0, 50.0, 29.69911764705882, 3.0]
d = {'col1': []}
df = pd.DataFrame(data=d)
df['col1']=l2
print(df['col1'])
df['col2'] = pd.cut(df.col1,10)
print(df['col2'].value_counts())
new_list=[]
labels=['25-31','19,25','13-19','31-37','0-7','37-43','43-49','49-55','7-13','55-62']
for i in df['col1']:
for j in df['col2'].value_counts():
if i.between(j):
new_list.append(inter_list.index(j))
print(new_list)
uj5u.com熱心網友回復:
根據pandas.cut,您可以直接在函式呼叫中指定標簽。回傳值將是一個包含 中每個值的所屬標簽的熊貓系列df.col1。以下代碼為您解決問題:
labels = ['25-31', '19,25', '13-19', '31-37', '0-7',
'37-43', '43-49', '49-55', '7-13', '55-62']
df['labels'] = pd.cut(df.col1,10, labels=labels)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/314383.html
下一篇:為什么字串沒有被寫入臨時檔案?
