2017-08-30 56 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是非高性能