当我添加或插入新列以清空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 :(得分:0)
insert
失败,因为索引标签不存在,因此在您的第二个示例中dfTemp.insert(1, 'Device' , 'ipad')
失败,因为1
不存在,但上一行插入工作得很好。
对于其他情况,出于同样的原因,您可以使用loc
或iloc
进行setting 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是非执行的