2014-04-19 30 views
1

有什麼方法可以將鬆散耦合的字典列表轉換爲np.recarray(其中import numpy as np)?numpy,recarray:將字典列表轉換爲np.recarray的方法?

我在這裏看了看SO,但看到了數據已經結構良好的地方。

我已經試製一種簡單的方法在這裏:dict_list_to_recarray.py

謝謝!

+1

以我的經驗'pandas'](http://pandas.pydata.org)'DataFrames';你可以簡單地寫'df = pd.DataFrame(raw)'。如果你願意的話,你可以使用'df.to_records()'來獲得等價的重新數組。 ('pandas'使用'NaN'來表示你使用'None'的缺失值,但'.fillna()'可能會改變這種情況。) – DSM

+0

這很有效,謝謝! – eacousineau

回答

3

@DSM在準備完整答案時打敗了我。但是,是的,它已經存在了。只有你必須使用Pandas(導入爲pd),將其轉換爲一個DataFrame然後,當人們使用`recarrays`他們會通常會更好用[其轉換爲recarray

In [8]: 

print pd.DataFrame(raw) 
    age    extra has_money name 
0 45    NaN  True Billy 
1 32 Something wicked  False Tommy 
2 31    NaN  True  Al 
In [9]: 

pd.DataFrame(raw).to_records() 
Out[9]: 
rec.array([(0, 45, nan, True, 'Billy'), 
     (1, 32, 'Something wicked', False, 'Tommy'), 
     (2, 31, nan, True, 'Al')], 
     dtype=[('index', '<i8'), ('age', '<i8'), ('extra', 'O'), ('has_money', '?'), ('name', 'O')])