[英]How to create a DataFrame with MultiIndex from custom numpy dtype?
我正在用np.fromfile
讀取一個二進制文件,我想將其轉換為DataFrame
。 二進制文件的格式如下:
import numpy as np
import pandas as pd
dtyp = np.dtype([
('group1', [('item1', 'int'), ('item2', 'int')]),
('group2', [('item1', 'int'), ('item2', 'int')])
])
arr = np.zeros(shape=2, dtype=dtyp)
現在,我想把它變成一個DataFrame,所以我嘗試了這個:
pd.DataFrame.from_records(arr)
group1 group2
0 (0, 0) (0, 0)
1 (0, 0) (0, 0)
...但這不是我想要的。 列名稱'item1'
和'item2'
丟失。 我想要的輸出在列上有一個MultiIndex
,如下所示:
group1 group2
item1 item2 item1 item2
0 0 0 0 0
1 0 0 0 0
我認為它不是為嵌套結構化數組實現的。 在您的情況下,您可以像這樣破壞dtype:
def mkd(arr):
d={}
for n1 in arr.dtype.names:
for n2 in arr[n1].dtype.names:
d[(n1,n2)]=arr[n1][n2]
return pd.DataFrame(d)
對於
In [1]: mkd(arr)
Out[1]:
group1 group2
item1 item2 item1 item2
0 0 0 0 0
1 0 0 0 0
2 0 0 0 0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.