3
如何追加到大熊貓數據幀包含明確的數據類型的預定義欄:追加到大熊貓數據幀與類別列
df=pd.DataFrame([],columns=['a','b'])
df['a']=pd.Categorical([],categories=[0,1])
new_df=pd.DataFrame.from_dict({'a':[1],'b':[0]})
df.append(new_df)
上面扔下我一個錯誤:
ValueError: all the input arrays must have same number of dimensions
更新: 如果類別是字符串,而不是整數,附加似乎工作:
df['a']=pd.Categorical([],categories=['Left','Right'])
new_df=pd.DataFrame.from_dict({'a':['Left'],'b':[0]})
df.append(new_df)
那麼,我該如何附加到具有int值類別的DataFrame?其次,我推測使用二進制值(0/1),將列存儲爲Categorical而不是數字數據類型將更有效或更快。這是真的?如果沒有,我甚至可能不費力地將我的列轉換爲分類類型。
應該這樣工作嗎? new_df = pd.DataFrame.from_dict({'a':[1],'b':[0]}), new_df ['a'] = new_df ['a']。astype('category') – Vaishali
嗯這不起作用,但安華的答案如下。它會拋出錯誤''在類別concat不兼容的類別'和問題已在這裏報告: https://github.com/pandas-dev/pandas/issues/12699 我認爲問題是在' 'new_df''沒有完全定義,因此可能與''df''中的類別不一致 – wenhoo