创建一个空数据框并在python中填充创建的列

时间:2016-05-20 09:17:04

标签: python pandas dataframe

我正在尝试创建一个空数据框,一旦创建它,​​然后将列添加到数据框中。

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,..]但仍然无效。

1 个答案:

答案 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]