Pandas模块学习笔记2:列操作、重新索引和选取过滤

1、dataframe中的列操作

***给列赋值:为不存在的列赋值将会创建新的一列***

frame['column1'] = 1 //将frame的第一列赋值为1
frame['column1'] = np.arange(5.) //将frame的第一列赋值为01234
frame['column1'] = series //将series作为frame的一列,series和frame的index是对应的,若没有对应索引则值为NaN

***删除列***
del frame['column1']

2、重新索引:reindex函数

重新索引行:
frame.reindex(['2', '3', '1', '5', '4'], fill_value=0) //将obj按照23154的索引顺序重新排序,如果obj中没有相应索引对应的值,则使用0来填充
frame.reindex(range(6), method='ffill') // 按012345的索引排序,补充的索引如果没有对应的数值,则取前一个索引的值填充。 ffill或pad前向填充, bfill或backfill 后向填充

重新索引列:
print frame.reindex(columns=['column2', 'column3', 'column1']) 

重新索引行和列:
frame.loc[['2', '3', '1', '5', '4'], ['column2', 'column3', 'column1']] 

“删除”行,即不索引某行:
frame.drop(['2', '3']) //不索引2和3对应的行
“删除”列,即不索引某列:
frame.drop(['column2', 'column3'], axis=1) //不索引column2和column3对应的列

3、选取和过滤

列选取:
frame[['column1', 'column2']] //选取列1和列2

行选取:
frame[:2] //选取前2行

根据条件过滤:
frame[frame['column1'] > 5] //选取第一列值大于5的所有行

行和列同时选取:
data.loc['index1':'index3', ['column1', 'column2']]  //选取index1到index3对应的行,再选取其中的列1和列2


#loc只能通过index和columns来取,不能用数字 df.loc['one','a']#one行,a列 df.loc['one':'two','a']#one到two行,a列 df.loc['one':'two','a':'c']#one到two行,a到c列 df.loc['one':'two',['a','c']]#one到two行,ac列   #iloc只能用数字索引,不能用索引名 df.iloc[0:2]#前2行 df.iloc[0]#第0行 df.iloc[0:2,0:2]#0、1行,0、1列 df.iloc[[0,2],[1,2,3]]#第0、2行,1、2、3列
 

 

上一篇:腾讯位置服务地图选点组件使用示例


下一篇:selenium之设计BasePage类:设计基类,提高项目的代码重用性