python - 使用 dtype float 将 pandas.Multindex 转换为 numpy.ndarray
问题描述
将 pandas.Multiindex 转换为 numpy.ndarray 时,输出是一维 ndarray,dtype=object
如下例所示:
df = pd.DataFrame({
'A': [10, 20, 30, 40, 50, 60],
'B': [0,1,2,3,4,5],
'C': ['K0', 'K1', 'K2', 'K3', 'K4', 'K5']
}).set_index(['A','B'])
df 将是:
一个 | 乙 | C |
---|---|---|
10 | 0 | K0 |
20 | 1 | K1 |
30 | 2 | K2 |
40 | 3 | K3 |
50 | 4 | K4 |
60 | 5 | K5 |
的输出df.index.to_numpy()
是一个一维ndarray,其中dtype=object
:
array([(10, 0), (20, 1), (30, 2), (40, 3), (50, 4), (60, 5)], dtype=object)
但我想要:
array([[10, 0],
[20, 1],
[30, 2],
[40, 3],
[50, 4],
[60, 5]])
在How to convert a Numpy 2D array with object dtype to a regular 2D array of floats中,我找到了以下解决方案:
np.vstack(df.index)
有没有更直接或更好的解决方案?
解决方案
我很确定你会通过展平多索引并从结果中获取 numpy 数组来得到你想要的。例如,使用以下语法
np.array(list(df.index))
推荐阅读
- javascript - If entering a specific url address submit a form js
- python - tkk 框架中的可选 matplotlib 图
- qt - 按下鼠标时不会更新 QML 图像源
- python - 如何在python中定义许多文本使用“in”条件
- node.js - How can I stop axios from retrying the request after 2 mins
- python-3.x - TypeError: 'Column' object is not callable when use 'case-when'
- python - 当我创建一个新的 Docker 容器时,Pip 会安装过时的库
- docker - Traefik Web UI Server Not Found
- go - 说明:函数在 go 中返回相同的函数
- css - 捆绑不渲染样式