Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将数据帧转换为列表列表以输入RNN_Python_Pandas_Tensorflow_Deep Learning_Recurrent Neural Network - Fatal编程技术网

Python 将数据帧转换为列表列表以输入RNN

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

在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       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])