2017-07-14 99 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

相关问题