将dict附加到数据帧

时间:2014-03-10 11:34:55

标签: python pandas dataframe

python新手。 我正在从原始数据帧中读取行并尝试将其附加到目标数据帧。 这是我的计划 读取rawdata每一行的主要代码。

for i,row in raw_data.iterrows():
    tool=row['entity']
    shift=row['shift_info']
    time=row['time_delta']
    set_flag (tool,shift,time,raw_data,Display_data)

然后我构造一个dict来附加到目标数据帧。

def set_flag(tool,shift,time,raw_data,Display_data):
    for j,rows in Display_data.iterrows(): 

        temp_col='time'+str(time)
        if(rows['entity']==tool and rows['shift_info']==shift):
            rows[temp_col]=1
        else:
         #   print tool                          
            newrow = [{'shift_info':shift,'entity':tool,temp_col:1}]  
         #  print newrow
            Display_data = Display_data.append(newrow, ignore_index=True)

代码执行,但Display_data数据框不会更改。 任何人都可以教育我的问题吗?谢谢!

1 个答案:

答案 0 :(得分:0)

试试这个

import copy

def set_flag(tool,shift,time,raw_data,Display_data):
    new_data = copy.deepcopy(Display_data)
    for j,rows in Display_data.iterrows(): 
        temp_col='time'+str(time)
        if(rows['entity']==tool and rows['shift_info']==shift):
            rows[temp_col]=1
        else:
         #   print tool                          
            newrow = [{'shift_info':shift,'entity':tool,temp_col:1}]  
         #  print newrow
            new_data.append(newrow, ignore_index=True)
    return new_data

获取您呼叫的新变量。

Display_data = set_flag (tool,shift,time,raw_data,Display_data)