在 for 循环中更新数据帧

我正在尝试从 for 循环中的值创建数据框:


d1 = {}

d = {}


for i in range(4000):

   try:

    shape_json = json.loads(region_shape[i])

    file_name = file_name_nuclei[i]


    x_val = shape_json["x"]

    y_val = shape_json["y"]

    width_val = shape_json["width"]

    height_val = shape_json["height"]


    path = '/home/values/' + str(file_name)


    x1 = x_val

    y1 = y_val


    x2 = x_val + width_val

    y2 = y_val + height_val


    df = pd.DataFrame(data=d1)


    d = {'col1': [path], 'col2': [x1], 'col3': [y1], 'col4': [x2], 'col5': [y2], 'col5': ['nucleus']}

    df2 = pd.DataFrame(data=d1)


    df.update(df2)


   except:

       pass

但是,我无法在每次迭代中更新数据帧。任何人都可以帮忙吗?


我正在尝试获得输出:


0 col1 col2 col3 col4 col5

  '/home/values/image.png' 23 55 30 62 'nucleus'

  '/home/values/image2.png' 40 72 37 92 'nucleus'

.

.

.

.

.


达令说
浏览 99回答 2
2回答

子衿沉夜

我会创建一个列表并将所有数据帧添加到循环中的列表中,然后在最后使用 pd.concat:results = []for i in range(4000):    try:        shape_json = json.loads(region_shape[i])        file_name = file_name_nuclei[i]        x_val = shape_json["x"]        y_val = shape_json["y"]        width_val = shape_json["width"]        height_val = shape_json["height"]        path = '/home/values/' + str(file_name)        x1 = x_val        y1 = y_val        x2 = x_val + width_val        y2 = y_val + height_val        d = {'col1': [path], 'col2': [x1], 'col3': [y1], 'col4': [x2], 'col5': [y2], 'col5': ['nucleus']}        df = pd.DataFrame(data=d)        results.append(df) # append this loop's df to your list of dataframes    except:        passfinal_df = pd.concat(results) 

眼眸繁星

您需要在循环之外创建一个“主”数据框。d1 = {}d = {}df = pd.DataFrame(data=d1)for i in range(4000):    try:        shape_json = json.loads(region_shape[i])    file_name = file_name_nuclei[i]    x_val = shape_json["x"]    y_val = shape_json["y"]    width_val = shape_json["width"]    height_val = shape_json["height"]    path = '/home/values/' + str(file_name)    x1 = x_val    y1 = y_val    x2 = x_val + width_val    y2 = y_val + height_val    d = {'col1': [path], 'col2': [x1], 'col3': [y1], 'col4': [x2], 'col5': [y2], 'col5': ['nucleus']}    df2 = pd.DataFrame(data=d1)    df.update(df2)    except:        pass并且 d1 在所有代码中都是空的。当您尝试使用 df2 更新 df 时,df2 也是空的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python