計數我有以下形式的數據幀:車削表數據轉換成列和通過頻率
形狀爲2326 X 1271個
列名稱只是從0-1269序列而行在這個例子中是類似於「蘋果」的類別。內部數據點可以表示任何東西(假設它們代表本例中的商店),我試圖將它們轉換爲列並使數據點成爲類別在「商店」中顯示的次數。從外觀上看,這裏是我試圖讓表:
注意,蘋果在AA顯示了與RR兩次
計數我有以下形式的數據幀:車削表數據轉換成列和通過頻率
形狀爲2326 X 1271個
列名稱只是從0-1269序列而行在這個例子中是類似於「蘋果」的類別。內部數據點可以表示任何東西(假設它們代表本例中的商店),我試圖將它們轉換爲列並使數據點成爲類別在「商店」中顯示的次數。從外觀上看,這裏是我試圖讓表:
注意,蘋果在AA顯示了與RR兩次
數據:
index= ['Apple', 'Orange', 'Apple', 'Banana', 'Kiwi']
data = [['AA', 'DD', 'RR', ''], ['DD', 'PP', '', ''],
['AA', 'RR', 'TT', 'SS'], ['EE', 'NN', '',''], ['NN', 'WW','', '']]
frame = pd.DataFrame(data, index, columns=np.arange(4))
frame
操作:
df = frame.stack().reset_index(0, name='values')
df = pd.crosstab(df['level_0'], df['values']).drop('', axis=1).replace(0, '')
df.index.name=None; df.columns.name=None
df
這可能成爲最後的贏家。一個問題,在「.drop(...)」之後發生了什麼?給我一個「不包含在軸」錯誤,當我保持它,但似乎沒有工作沒有整個下降和重命名 –
我認爲你可以省略'.drop('',axis = 1)'完全。它被使用的原因是因爲執行'crosstab'操作後創建了一個額外的列。沒有這個也能正常工作。看看它是否有效,直到交叉表部分。休息是爲了純粹的美學目的。 –
它的確如此。謝謝! –
嘗試樞軸或pivot_table功能 – Boud