2017-03-07 9 views
0

None値のDataFrameを作成するのは難しいです。行うには ので、私はいくつかの手順を実行しますが、私はパンダ機能を使用して同じ結果を得ることができると信じて...Noneを指定してpandasデータフレームを初期化します

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

は、同じ結果を得るためにそこにコマンドですか?

答えて

1

私はあなたがlistから作成reshapenumpy arrayが必要だと思う:

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((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 

:一般的に

>>> 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 

、ワンライナーとして行くだろうここにNaNワンライナーがあります:

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