Pandas數據結構:5種Dataframe創建方式
來自專欄 Python與數據分析
學習心得
剛開始學習Pandas的Series創建方式比較容易,因為就一種創建方式(numpy.array創建ndarray數組或使用numpy的random出隨機值)
然而對於二維數組的Dataframe創建就比較繁瑣,我建議大家首先在Numpy部分以及Pandas一維數組Series創建有比較熟悉後,在理解Pandas的Dataframe會比較清楚。(學習的環境為Anaconda-Python-Jupyter Notebook)
項目題目
以下我分享五種方式來完成下圖的Dataframe表格型數據結構。
1) 由數組列表組成的字典
data1 = {four:np.arange(4,9), one:range(1,6), three:[3,4,5,6,7],two:range(2,7)}print((1) 由列表組成的字典)print(pd.DataFrame(data1, index=list(abcde)))print(------------)
2) 由Series組成的字典
data2 = {four:pd.Series(np.arange(4,9), index=list(abcde)), one:pd.Series(range(1,6), index=list(abcde)), three:pd.Series((3,4,5,6,7), index=list(abcde)), two:pd.Series(range(2,7), index=list(abcde))}print((2) 由Series組成的字典)print(pd.DataFrame(data2))print(------------)
3) 通過二維數組直接創建
data3=np.array([4,1,3,2,5,2,4,3,6,3,5,4,7,4,6,5,8,5,7,6]).reshape(5,4)print((3)通過二維數組直接創建)print(pd.DataFrame(data3, index=list(abcde), columns=[four, one, three, two]))print(------------)
4) 由字典組成的列表
data4 = [{four:4,one:1,three:3,two:2}, {four:5,one:2,three:4,two:3}, {four:6,one:3,three:5,two:4}, {four:7,one:4,three:6,two:5}, {four:8,one:5,three:7,two:6}]print((4)由字典組成的列表)print(pd.DataFrame(data4, index=list(abcde)))print(------------)
5) 由字典組成的字典
data5 = {four:{a:4, b:5, c:6, d:7, e:8}, one:{a:1, b:2, c:3, d:4, e:5}, three:{a:3, b:4, c:5, d:6, e:7}, two:{a:2, b:3, c:4, d:5, e:6}}print((5)由字典組成的字典)print(pd.DataFrame(data5, index=list(abcde), columns=[four, one, three, two]))
由以上五種方式都可以創建相同的Dataframe,但主要還是依據當時情況做決定使用最便捷的方式。
項目結束。
推薦閱讀:
※C 語言和 Python,該從哪個入門編程?
※零: 深度學習Theory&Code從0到1——先導篇之matplotlib 進階教程)
※metaparse - 一個非常易用的Parser
※python初學者,如果你連這樣的習題寫不出代碼,該怎麼辦?
※手把手教你用Python實現人臉識別