ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-01-19 23:01:35  阅读:217  来源: 互联网

标签:loc df frame 选取 索引 模块 column1 Pandas


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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有