2015-05-05 56 views
24

我想創建一個填充了NaN的Pandas DataFrame。在我的研究,我發現an answer用NaN創建空熊貓DataFrame的優雅方法,類型爲float

import pandas as pd 

df = pd.DataFrame(index=range(0,4),columns=['A']) 

該代碼產生充滿型「對象」的NaN的一個數據幀。所以他們以後不能用於例如interpolate()方法。因此,我創建這個複雜的代碼(由this answer啓發)數據幀:

import pandas as pd 
import numpy as np 

dummyarray = np.empty((4,1)) 
dummyarray[:] = np.nan 

df = pd.DataFrame(dummyarray) 

這導致填充型「浮動」的NaN的一個數據幀,因此它可與後來interpolate()上使用。有沒有更優雅的方式來創造相同的結果?

+0

我不得不把dummyarray = np.empty((4,1))給我工作 –

回答

34

只需將所需的代表作爲標量第一個參數傳遞,如0,math.inf或在此例中爲np.nan。構造函數然後初始化值陣列由indexcolumns指定的大小:

>>> df = pd.DataFrame(np.nan, index=[0,1,2,3], columns=['A']) 
>>> df.dtypes 
A float64 
dtype: object 
+1

也適用於pd.Series。優秀! – Bill

10

構建數據幀時,您可以直接指定D型:

>>> df = pd.DataFrame(index=range(0,4),columns=['A'], dtype='float') 
>>> df.dtypes 
A float64 
dtype: object 

指定D型力量熊貓嘗試與該類型創建數據幀,而不是試圖推斷它。

0

這會是一個很好的方法嗎?

pd.DataFrame(np.nan, index=[], columns=[]) 

爲什麼它不是圖書館的一部分?