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

2024-05-15 03:26:19 发布

您现在位置:Python中文网/ 问答频道 /正文

在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_id排序,然后按time_to_event_f排序。我试图将这个数据帧转换为一个维度的张量[2,3,3],这样对于每个客户id我都有一个顺序列表time_to_event_fevent_id,和{}。我们的想法是将其用作tensorflow中RNN的输入。我遵循this tutorial所以我试图以类似的格式获取数据。在


Tags: csvto数据eventidpandas列表read
1条回答
网友
1楼 · 发布于 2024-05-15 03:26:19

您可以通过设置Cust_id索引,然后堆叠,将原始数据帧d转换为以客户id为中心的系列:

d.set_index('Cust_id').stack()

结果系列如下所示:

^{pr2}$

使用这种表示法,您的任务很简单:使用valuesndarray并将其重塑为目标大小:

series.values.reshape([2, 3, 3])

这个数组可以作为输入输入输入到tensorflow RNN。完整代码如下:

import pandas as pd
from io import 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_table(s, names=['Cust_id', 'time_to_event_f', 'event_id', 'event_sub_id'], sep=r'\s+')
series = d.set_index('Cust_id').stack()
time_array = series.values.reshape([2, 3, 3])

相关问题 更多 >

    热门问题