2016-09-21 11 views
3

私はpandasデータフレームを扱っており、整数であるべきいくつかのカラム(下の例ではx & y)とfloat(l)であるカラムを必要とします。新しい列に浮動小数点を割り当てると、データフレーム全体が浮動小数点数として再現されるようです。なぜこれが、どうして私はそれを防ぐのですか?Pandas Dataframe自動タイプキャスト

生成
data = pd.DataFrame(data=[[3103, 1189, 1]],index = None, columns = ['y', 'x', 'l'], dtype = int) 
print data.y 
data.ix[1] = (3, 3, 3.4) 
print data.y 

0 3103 
Name: y, dtype: int32 
0 3103 
1  3 
Name: y, dtype: float64 
+0

ここに回答があります:http://stackoverflow.com/questions/22044766/adding-row-to-pandas-dataframe-changes-dtype – IanS

+0

@IanSにリンクされている回答は無視してください溶液。 – sage88

答えて

1

をあなたが使用して、各添加後に、他のすべての列を作り直すことができます:あなたがの多くを追加する必要がある場合

data['y'] = data['y'].astype(int) 

は、最も効率的なソリューションをオンザフライで列。あるいは、Seriesを使用してデータフレーム全体を事前に作成し、オプションの場合は作成時間全体を入力することもできます。