2016-09-21 67 views
3

我正在使用一個熊貓數據框,並且需要幾個列(在以下示例中,x爲y)爲一個整數,一列爲浮點數(l)。看起來,分配一個新的行與一個浮動它重鑄整個數據幀作爲一個浮動。爲什麼是這樣的,我如何防止它?熊貓數據幀自動類型轉換

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創建整個數據框,然後將整個事物輸入創建時間,如果這是一個選項。