2
我使用pandas.cut()將連續變量分散到一個範圍內,然後按結果分組。pandas cut:如何將分類標籤轉換爲字符串(否則不能導出到Excel)?
經過大量的發誓,因爲我無法弄清楚什麼是錯誤的,我已經瞭解到,如果我不爲cut()函數提供自定義標籤,而是依賴於默認值,那麼輸出不能被出口到excel。如果我試試這個:
import pandas as pd
import numpy as np
writer = pd.ExcelWriter('test.xlsx')
wk = writer.book.add_worksheet('Test')
df= df= pd.DataFrame(np.random.randint(1,10,(10000,5)), columns=['a','b','c','d','e'])
df['range'] = pd.cut(df['a'],[-np.inf,3,8,np.inf])
grouped=df.groupby('range').sum()
grouped.to_excel(writer, 'Export')
writer.close()
我得到:
raise TypeError("Unsupported type %s in write()" % type(token))
TypeError: Unsupported type <class 'pandas._libs.interval.Interval'> in write()
which it took me a while to decypher.
相反,如果我不分配標籤:
df['range'] = pd.cut(df['a'],[-np.inf,3,8,np.inf], labels =['<3','3-8','>8'])
那麼這一切運行良好。 關於如何處理這個沒有分配自定義標籤的任何建議?在我工作的最初階段,我傾向於不分配標籤,因爲我仍然不知道我需要多少個分類 - 這是一種試驗和錯誤的方法,並且在每次嘗試時分配標籤都會非常耗時。
我不確定這是否可以算作一個錯誤,但至少它似乎是一個記錄不好的煩惱!
'DF [ '範圍'] = pd.cut(DF [ 'A'],[ - np.inf,3,8,np.inf],labels = ['<3','3-8','> 8'])。astype(str)' –
問題在於如何在沒有明確指定標籤的情況下做到這一點 –
您可以不使用'labels' kwargs ,AF AIK –