2017-07-14 100 views
0

如何獲取數據框來解釋構造器中的類型?截至目前,它讓一切都爲 「對象」DataFrame對象的dtype而不是int

這裏是我的代碼現在:

arr = list(range(120)) + [21]*100 
cat = ["A"]*20 + ["B"]*40 + ["C", "D"] * 20 + ["E", "F" ,"G"] * 30 
df = pd.DataFrame([arr]*3 + [cat], index = ["a1", "a2", "a3", "cat"]).T 
print(df.a1.dtype.name) 
print(df.a3.dtype.name) 
print(df.cat.dtype.name) 

object 
object 
object 
+1

'df.convert_objects(convert_numeric = TRUE).dtypes'或'df.head(1).applymap(type)'? – Zero

+0

會保持字符串變量相同嗎? – Adam

回答

1

試試這個:

np_array = np.array([arr]*3 + [cat]) 
dict = {"a1":np_array[0], "a2":np_array[1], "a3":np_array[2]} 
df = pd.concat([pd.DataFrame({"cat":np_array[3]}), pd.DataFrame(dict, dtype = 'int64')], names = ["a1", "a2", "a3", "cat"], axis = 1) 
+0

沒有打開核心rn,但字符串數組會打破它嗎? – Adam

+0

只是檢查編輯 –

+0

這是一些非常非常特殊的代碼。我主要是在尋找某些東西來自動地解釋類型:)我找到了另一個黑客來解決這個問題。當我比較類型時,我使用np.subclass(s​​.dtype,np.number),其餘部分完成 – Adam

相關問題