昨天講了 數據幀(DataFrame)是二維數據結構,即數據以行和列的表格方式排列。python
import pandas as pd data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada', 'Nevada'], 'year': [2000, 2001, 2002, 2001, 2002, 2003], 'pop': [1.5, .17, 3.6, 2.4, 2.9, 3.2]} frame = pd.DataFrame(data) print(frame)
產生的DataFrame以下:數組
對於大型的DataFrame,head方法能夠篩選出前5行。數據結構
若是你指定列順序,DataFrame將會按指定順序排列。3d
frame_col = pd.DataFrame(data,columns=['year', 'state', 'pop']) print(frame_col)
若是傳遞的值不在字典中,將會在結果中出現缺失值:code
frame2 = pd.DataFrame(data, columns=['year', 'state', 'pop', 'debt'], index=['one', 'two', 'three', 'four', 'five', 'six']) print(frame2) print(frame2.columns)
DataFrame中的一列,能夠看作是Series: # 按字典標記 print(frame2['state']) # 按屬性使用 print(frame2.year)blog
注意:frame[column]對於任意列名均有效,若是該列不存在,能夠生成新列。可是frame.column只在列名是有效的python變量名時有效,而且不能夠生成新列。three
# 行能夠經過位置或特殊屬性loc進行選取 print(frame2.loc['three'])
列的引用是能夠修改的。如空的‘debt’列能夠賦值爲標量值或數組值。pandas
frame2['debt'] = 16.5 print(frame[2]) frame2['debt'] = np.arange(6.) print(frame2)
val = pd.Series([-1.2, -1.5, -1.7],index=['two', 'four', 'five']) frame2['debt'] = val print(frame2)
這一列是布爾值,判斷條件是state列是否爲‘Ohio’:io
frame2['eastern'] = frame2.state == 'Ohio'
del方法能夠用於移除以前新建的列ast
del frame2['eastern']
從DataFrame中選取的列是數據的視圖,而不是數據的拷貝。所以對Series的修改會映射到DataFrame中。