2017-07-14 10 views
0

construtorの型を解釈するためにデータフレームを取得するにはどうすればよいですか?今のところ、それはここで、 "オブジェクト" としてint型ではなくDataframeオブジェクトのdtype

をすべてを保持します今私のコードです:

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

関連する問題