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列
标签:loc,df,frame,选取,索引,模块,column1,Pandas 来源: https://www.cnblogs.com/venkooo/p/14300345.html