我需要将熊猫数据框格式化为以下数据外观
问题是我无法如下面的字符串所示来制定数据,并且出现了很多错误和异常。
我无法弄清的主要问题是,如何从ID 1附加一个值,对于ID 1附加另一个值(在已排序的pandas数据框中)
s = """
,trajectory_id,x ,y ,frame
0,1 ,0 ,-2,0
1,1 ,0 ,-1,1
2,1 ,0 ,0 ,2
3,1 ,0 ,1 ,3
4,2 ,2 ,2 ,4
5,2 ,1 ,1 ,5
6,2 ,0 ,0 ,6
7,2 ,-1,-1,7
"""
X,Y是对象ID的列表,frame是增量变量
EACH FRAME I'm detecting and getting Object new coordinates with it's trk ID
dic_car_lists = defaultdict(list)
trk = trk.astype(np.int32) ## trck is TRAJECTORY_ID
p = np.array([[((trk[1] + trk[3]) / 2, (trk[0] + trk[2]) / 2)]], dtype=np.float32)
center_pt = cv2.perspectiveTransform(p, H)
point_lists[trk[4]].append(center_pt.T)
x = [i[0] for i in point_lists[trk[4]]]
y = [i[1] for i in point_lists[trk[4]]]
x = list(map(lambda dd: float(dd[0]),x))
y = list(map(lambda dd: float(dd[0]),y))
dic_car_lists[trk[4]].append([trk[4], x, y, frame_idx])
def compute(data,df_region, df_line):
gb = ('trajectory_id',)
card_data = np.array(data)
columns = ['trajectory_id', 'x_world', 'y_world', 'frame']
car_d[card_data[0]].append(data)
df = pd.DataFrame(list(car_d.items()),
columns=columns)
compute( dic_car_list[trk[4]],
df_region,df_line)