【发布时间】:2016-02-04 03:09:00
【问题描述】:
我有一个带有 2 个索引的 pandas DataFrame。 (MultiIndex)我想得到一个像df.as_matrix(...) 这样的Numpy 矩阵,但这个矩阵的形状是(n_rows, 1)。我想要一个形状为(n_index1_rows, n_index2_rows, 1) 的矩阵。
有没有办法使用.groupby(...) 然后使用.values.tolist() 或.as_matrix(...) 来获得所需的形状?
编辑:数据
value
current_date temp_date
1970-01-01 00:00:01.446237485 1970-01-01 00:00:01.446237489 30.497100
1970-01-01 00:00:01.446237494 9.584300
1970-01-01 00:00:01.446237455 10.134200
1970-01-01 00:00:01.446237494 7.803683
1970-01-01 00:00:01.446237400 10.678700
1970-01-01 00:00:01.446237373 9.700000
1970-01-01 00:00:01.446237180 15.000000
1970-01-01 00:00:01.446236961 12.928866
1970-01-01 00:00:01.446237032 10.458800
这是一种想法:
np.array([np.resize(x.as_matrix(["value"]).copy(), (500, 1)) for (i, x) in df.reset_index("current_date").groupby("current_date")])
【问题讨论】:
-
您想要一个 3D 数组?或者只是一个包含索引和列的二维数组?
-
3D 数组。 np.array 中的所有值都应该是列值(不是索引)
-
您能否提供一些具有所需输出的示例数据?
-
完成。忽略时髦的日期时间
-
对不起,为什么要变成 3D 数组?你有两个索引(i=current_date 和 j=temp_date,大概有一些映射——现在 temp_date 没有排序,所以不清楚)和这些索引指定的值。那不是二维物体吗?