2017-08-30 65 views
0

當我向空DF添加或插入新列時,它不起作用。否則工作。向空數據框插入或添加新列不起作用

>>> dfTemp=pd.DataFrame() 
    >>> dfTemp 
    Empty DataFrame 
    Columns: [] 
    Index: [] 
    >>> dfTemp.insert(0, 'Company' , 'Apple') 
    >>> dfTemp.insert(1, 'Device' , 'ipad') 
    >>> dfTemp 
    Empty DataFrame 
    Columns: [Company, Device] 
    Index: [] 
    >>> dfTemp = pd.DataFrame({"Year": [2017]}) 
    >>> dfTemp.insert(0, 'Company' , 'Apple') 
    >>> dfTemp.insert(1, 'Device' , 'ipad') 
    >>> dfTemp 
     Company Device Year 
    0 Apple ipad 2017 

    >>> dfTemp = pd.DataFrame({"Year": [2017]}) 
    >>> dfTemp['Company']='Apple' 
    >>> dfTemp['Device']='ipad' 
    >>> dfTemp 
     Year Company Device 
    0 2017 Apple ipad 
    >>> dfTemp=pd.DataFrame() 
    >>> dfTemp['Company']='Apple' 
    >>> dfTemp['Device']='ipad' 
    >>> dfTemp 
    Empty DataFrame 
    Columns: [Company, Device] 
    Index: [] 

什麼是解決方法,使其工作空DF?

回答

0

insert失敗,因爲索引標籤不存在,所以在第二個示例中dfTemp.insert(1, 'Device' , 'ipad')由於1不存在而失敗,但前面的行插入工作正常。

對於其他情況,這是相同的原因,你可以使用locilocsetting with enlargement

In[23]: 
dfTemp.loc[0, 'Company']= 'apple' 
dfTemp 

Out[23]: 
    Company 
0 apple 

它看起來像.append適合您的使用情況較好。

In[26]: 
dfTemp = dfTemp.append({'Company':'apple', 'Year':2017}, ignore_index=True) 
dfTemp 

Out[26]: 
    Company Year 
0 apple 2017.0 

注意,反覆生長DF是非高性能