Python 将Pandas timeseries数据帧转换为3D阵列

Python 将Pandas timeseries数据帧转换为3D阵列,python,pandas,numpy-ndarray,datetimeindex,Python,Pandas,Numpy Ndarray,Datetimeindex,我有一个时间索引数据框,有两列“用户ID”和“每日余额”。数据框显示了2018年4月用户的每日余额(每个用户观察30次)。我需要从该数据帧生成一个3D numpy数组,其中shape(N(数据帧中的用户数量)、30(每日日期)、1(余额))保存相应的值。有谁能帮我一个代码来做这件事吗。例如,如果数据帧中有100个用户,我得到一个形状为(100,30,1)的数组,相当于100个2D数组,每个数组有30行和一列 谢谢我假设您只想在最终3D数组中保留每日余额值,在该数组中检索第j个日用户的余额,您可

我有一个时间索引数据框,有两列“用户ID”和“每日余额”。数据框显示了2018年4月用户的每日余额(每个用户观察30次)。我需要从该数据帧生成一个3D numpy数组,其中shape(N(数据帧中的用户数量)、30(每日日期)、1(余额))保存相应的值。有谁能帮我一个代码来做这件事吗。例如,如果数据帧中有100个用户,我得到一个形状为(100,30,1)的数组,相当于100个2D数组,每个数组有30行和一列


谢谢

我假设您只想在最终3D数组中保留每日余额值,在该数组中检索
第j个
用户的
余额,您可以执行
arr[I-1,j-1,0]

如果这是真的,那么您首先需要按照
USER\u ID
DATE
对数据帧进行排序,然后获取numpy数组,最后对其进行
整形

n_users = len(df.USER_ID.unique())
n_days = len(df.DATE.unique())

arr = df.sort_values(by=['USER_ID', 'DATE'])['Daily_BALANCE'].values.reshape(n_users, n_days, 1)

当您有100个用户和30天时,每个用户每天将有30个平衡值,因此3D阵列的形状将是(100、30、30)。对吗?在这种情况下,我强烈建议创建一个而不是3D numpy阵列。这正是我所需要的。我不知道重塑功能,非常感谢您提供的信息:)