Python 将数据帧转换为列表列表以输入RNN
在Python中,我有一个与pandas.read_csv一起导入的数据帧,例如:Python 将数据帧转换为列表列表以输入RNN,python,pandas,tensorflow,deep-learning,recurrent-neural-network,Python,Pandas,Tensorflow,Deep Learning,Recurrent Neural Network,在Python中,我有一个与pandas.read_csv一起导入的数据帧,例如: Cust_id| time_to_event_f |event_id |event_sub_id 1 100 5 2 1 95 1 3 1 44 3 1 2 99 5 5 2 87 2 2 2
Cust_id| time_to_event_f |event_id |event_sub_id
1 100 5 2
1 95 1 3
1 44 3 1
2 99 5 5
2 87 2 2
2 12 3 3
数据按
cust\u id
和time\u to\u event\u f
排序。我试图将此数据帧转换为维度的张量[2,3,3]
,以便对于每个客户id,我都有一个时间到事件的顺序列表,事件id
,以及事件子id
。想法是将其用作tensorflow中RNN的输入。我正在跟踪,因此我正在尝试以类似的格式获取数据。您可以通过设置客户id
索引,然后堆叠,将原始数据框d
转换为以客户id为中心的系列:
d.set_索引('Cust_id').stack()
结果系列将如下所示:
Cust\u id
1次到100次事件
事件编号5
事件子单元id 2
时间到事件95
事件id 1
事件子单元id 3
时间到事件44
事件编号3
事件子单元id 1
2次到事件99
事件编号5
事件子单元id 5
时间到事件87
事件编号2
事件子单元id 2
时间到事件12
事件编号3
事件子单元id 3
数据类型:int64
考虑到这种表示法,您的任务很简单:获取值
ndarray并将其重塑为您的目标大小:
series.values.reformate([2,3,3])
该阵列可作为tensorflow RNN的输入。完整代码如下:
将熊猫作为pd导入
从io导入StringIO
s=StringIO(“”)
1 100 5 2
1 95 1 3
1 44 3 1
2 99 5 5
2 87 2 2
2 12 3 3
“.strip())
d=pd.read_表(s,名称=['Cust_id','time_to_event_f','event_id','event_sub_id'],sep=r'\s+)
series=d.set_index('Cust_id')。stack()
时间数组=系列.值.重塑([2,3,3])