我想在PyTorch / Tensorflow中编写一个顺序模型。我有一个csv / pandas数据集,其中包含一个索引列和一些结果变量,如下所示:
| ID | SeqID | outcome_1 | outcome_2 | ...
|:-------|-------:|:---------:|:---------:|
| 'Bob' | 1 | H | B |
| 'Bob' | 2 | W | C |
| 'Bob' | 3 | H | S |
| 'Alice'| 1 | H | NaN |
| 'Max' | 1 | H | B |
| 'Max' | 2 | L | B |
...
我想获得一个数组列表(每个人一个),其中每个条目都是代表结果的整数。例如,单个变量(H = 1。W = 2,L = 3和= 4)的'Bob'数组将是:[1、2、1、4]和第二个变量(B = 1,C = 2,S = 3,= 4):[[1、2、1、4],[1、2、3、4]]等,我希望数组的大小与数据集中的序列不是。我尝试了一些方法,但我觉得它们有些过头了。例如,我可以这样做:
outcome_array = initial_df.pivot(index='SessionId', columns='SeqId', values='outcome_1')
outcome_array.reset_index(inplace=True, drop=True)
这将返回“透视”数据帧,其中行数为最长序列,对于某些ID,该序列不存在的NaN等,然后“清除”透视表。最重要的是,对于可能要使用的每个结果变量,我可能都必须执行此过程,以使其可能成为一个非常漫长的过程。是否有任何清洁,快速的方法来执行此操作,而又无需重复进行工作台旋转和进一步清洁工作?