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列

浙公网安备 33010602011771号