2017-03-07 25 views
0

我很難創建一個DataFrame值爲None的值。 要做到這一點我執行幾個步驟,但我相信我能得到利用大熊貓功能相同的結果...使用None初始化熊貓數據框

mydata = [] 
mydata.append([None, None, None, None]) 
mydata = np.array(mydata) 
mydata = pd.DataFrame(mydata, columns='Start','End','Duration']) 

是否有一個命令得到同樣的結果嗎?

回答

1

我認爲你需要reshapenumpy arraylist創建:

mydata = pd.DataFrame(np.array([None, None, None]).reshape(-1,3), 
         columns=['Start','End','Duration']) 
print (mydata) 
    Start End Duration 
0 None None  None 

[[]]另一個slowier解決方案:

mydata = pd.DataFrame([[None, None, None]], columns=['Start','End','Duration']) 
print (mydata) 
    Start End Duration 
0 None None  None 

如果使用columnsindex值,所有的數據都是NaN和可能replace他們到None

print (pd.DataFrame(columns=['Start','End','Duration'], index=[0])) 
    Start End Duration 
0 NaN NaN  NaN 

mydata = pd.DataFrame(columns=['Start','End','Duration'], index=[0]).replace({np.nan:None}) 
print (mydata) 
    Start End Duration 
0 None None  None 
0

另一種方法是:

pd.DataFrame({'Start':[None],'End':[None],'Duration':[None]}) 
0

這裏是一個快速的一行:

>>> pd.DataFrame(np.empty((4,3),dtype=pd.Timestamp),columns=['Start','End','Duration']) 
    Start End Duration 
0 None None  None 
1 None None  None 
2 None None  None 
3 None None  None 

在一般情況下,一個班輪將作爲去:

>>> pd.DataFrame(np.empty((5,3),dtype=object),columns=['Start','End','Duration']) 
    Start End Duration 
0 None None  None 
1 None None  None 
2 None None  None 
3 None None  None 
4 None None  None 

這是一個NaN單線:

>>> pd.DataFrame(np.empty((2,3))*np.nan,columns=['Start','End','Duration']) 
    Start End Duration 
0 NaN NaN  NaN 
1 NaN NaN  NaN