我正在尝试创建一个空数据框,一旦创建它,然后将列添加到数据框中。
InputData=pd.DataFrame()
并且一旦InputData准备好作为空数据帧,则填写如下。
InputData.ix[i,'Quote']=store.ix[i,'QUOTE_ID']
InputData.ix[i,'Com']=store.ix[i,'COM_L']
store =我的原始数据框,我试图通过应用某些条件来获取列。 quote和com是我想要创建的新列,QUOTE_ID和COM_L是存储文件的现有列。但是我得到了这个错误:
ValueError: cannot set by positional indexing with enlargement
for i in xrange(len(InputData.index)):
if (i % 5000) == 0:
print i,
if ((InputData.ix[i,'WIN']=='Y') and ((InputData.ix[i,'COM_C']=='H') or (InputData.ix[i,'COM_C']=='S')) and (InputData.ix[i,'COM_QUOTE']>0) and (InputData.ix[i,'COM_L']!=0)):
OutputData['Quote']=InputData['QUOTE_ID']
OutputData['ComList']=InputData['COM_LISTPR']
实际上这是我试图运行的代码。
你编码InputData['Quote']=store['QUOTE_ID']
工作正常但是当我尝试这个代码时,在所有条件下给出然后不适用于条件并提供与原始文件相同的输出。我试图从代码行中删除.ix[i,..]
但仍然无效。
答案 0 :(得分:0)
尝试创建:
df = pd.DataFrame({'A': [1, 3, 10, 50], 'B': [2, -8, 3, 7], 'C': [1, 10, -20, 1]})
要添加新列,您只需按以下示例定义它们:
df['D']=df['C']+5
您可以按
分配单个元素df['D'].ix[3]=df['C'].ix[3]