Sco*_*ott 4 python numpy multi-index pandas
我正在尝试将多索引熊猫DataFrame转换为numpy.ndarray. 数据框如下:
s1 s2 s3 s4
Action State
1 s1 0.0 0 0.8 0.2
s2 0.1 0 0.9 0.0
2 s1 0.0 0 0.9 0.1
s2 0.0 0 1.0 0.0
Run Code Online (Sandbox Code Playgroud)
我希望结果numpy.ndarray如下np.shape() = (2,2,4):
[[[ 0.0 0.0 0.8 0.2 ]
[ 0.1 0.0 0.9 0.0 ]]
[[ 0.0 0.0 0.9 0.1 ]
[ 0.0 0.0 1.0 0.0]]]
Run Code Online (Sandbox Code Playgroud)
我试过了,df.as_matrix()但这会返回:
[[ 0. 0. 0.8 0.2]
[ 0.1 0. 0.9 0. ]
[ 0. 0. 0.9 0.1]
[ 0. 0. 1. 0. ]]
Run Code Online (Sandbox Code Playgroud)
如何返回第一级的列表列表,每个列表代表一个Action记录。
您可以使用以下内容:
dim = len(df.index.get_level_values(0).unique())
result = df.values.reshape((dim1, dim1, df.shape[1]))
print(result)
[[[ 0. 0. 0.8 0.2]
[ 0.1 0. 0.9 0. ]]
[[ 0. 0. 0.9 0.1]
[ 0. 0. 1. 0. ]]]
Run Code Online (Sandbox Code Playgroud)
第一行只是找到您想要分组的组数。
为什么需要这个(或 groupby):一旦你使用.values,你就会失去来自熊猫的 MultiIndex 的维度。所以你需要以某种方式将该维度重新传递给 NumPy。
| 归档时间: |
|
| 查看次数: |
3175 次 |
| 最近记录: |