昨天讲了 数据帧(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中。