我有一个dataframe
带有这样列的熊猫:
event_id, obj_0_type, obj_0_foo, obj_0_bar, obj_1_type, obj_1_foo, obj_1_bar, obj_n_type, obj_n_foo, obj_n_bar, ....
例如:
col_idx = ['event_id']
[col_idx.extend(('obj_%d_id' %d, 'obj_%d_foo' %d, 'obj_%d_bar' %d)) for d in range(5)]
event_id = np.array(range(0,5))
data = np.random.rand(15,5)
data = np.vstack((event_id, data))
df = DataFrame(data.T, index = range(5), columns = col_idx)
我想拆分数据框的每一行,以便每个对象都有一个条目,如下所示:
event_id,obj_type,obj_foo,obj_bar
其中 event_id 将在给定事件的所有对象之间共享。
有很多非常慢的方法(迭代数据帧行并创建新的系列对象),但这些方法非常缓慢并且显然不符合 Python 标准。有没有我想念的更简单的方法?