pandas——数据筛选

阅读: 评论:0

pandas——数据筛选

pandas——数据筛选

读取数据的处理

访问某一列,使用dataframe数据的每一列的表头名 作为属性obj.表头名
中文作为属性也可以
例如,df.中国 等价于 df[‘中国’]
对于多列的访问,可以将一个列表作为参数放入中括号中

a&#ad_excel(r'my_excel.xlsx',encoding='gbk')
print(a)
lumns)
print('这是使用 =属性名称=访问一列===')
print(a.名字)		#这里使用中文作为属性也是可以的
print('这是使用 =索引名称=访问一列===')
print(a['名字'])		#使用中括号范文某一列
print(a[['名字','age']])	#这里需要注意的是,将一个列表作为了索引的参数
'''名字  age sex
0  王贵   24   男
1  狗子   35   男
2  黑蛋   23   女
3  小五    5   男
4  李四    6   男
5  小红    4   女
Index(['名字', 'age', 'sex'], dtype='object')
这是使用 =属性名称=访问一列===
0    王贵
1    狗子
2    黑蛋
3    小五
4    李四
5    小红
Name: 名字, dtype: object
这是使用 =索引名称=访问一列===
0    王贵
1    狗子
2    黑蛋
3    小五
4    李四
5    小红
Name: 名字, dtype: object名字  age
0  王贵   24
1  狗子   35
2  黑蛋   23
3  小五    5
4  李四    6
5  小红    4
'''

DataFrame数据对象的方法

df.loc[A,B ] 选择行和列(location)
loc works on labels in the index.

参数范围:使用df对象columns、index包含的标签范围内的变量筛选数据
A:行标签选择;B:列标签选择
A和B: 1.列表(表示某几个散列的行)、
2.切片类型(范围之间的数据)(不能是元组)
3.单独一个数值(某一行)
4.满足逻辑变量的行

如果对那行部分不需要做选择可以使用**冒号(:)**代替这部分。

a&#ad_excel(r'my_excel.xlsx',encoding='gbk')
print(a)
print('这是==范围选择==之后的数据======')
print(a.loc[[0,2],'名字':'sex'])  
print('这是==逻辑判断==之后的数据======')
print(a.loc[a['名字']=='王贵',:])
'''名字  age sex
0  王贵   24   男
1  狗子   35   男
2  黑蛋   23   女
3  小五    5   男
4  李四    6   男
5  小红    4   女
6  王贵   24   男
这是==范围选择==之后的数据======名字  age sex
0  王贵   24   男
2  黑蛋   23   女
这是==逻辑判断==之后的数据======名字  age sex
0  王贵   24   男
6  王贵   24   男
'''
df.iloc[A,B ] (integer location)

参考:

iloc works on the positions in the index (so it only takes integers).

iloc()的两个参数全部只能是整数,表示数据的第几行和第几列
本质的区别
iloc函数参数,总是按照表中位置数据(第几行,第几列)选择数据
loc函数的参数值(对应的标签)
1.当df对象定义了columns和index的值时,只能是定义过的标签
2.当df对象未定义columns和index的值时默认数据第一行是 columnsindex是从0开始的一维数组
容易混淆的,
当未定义df的index时,iloc和loc函数的第一个参数都是数据,
loc[0:6,:]表示:第1行到第7行#访问标签
iloc[0:6,:]表示的是第1行到第6行#使用整型切片

a&#ad_excel(r'my_excel.xlsx',encoding='gbk')
b&#ad_excel(r'my_excel.xlsx',encoding='gbk')
b.index=['fir','sec','thre','fo','fi','six','sev']
print(a)
print('这是==a的loc==之后的数据======')
print(a.loc[0:2,'名字':'age']) 
print('这是==a的iloc==之后的数据======')
print(a.iloc[0:2,0:2])
print('!'*10+'这是添加了index后的b==')
print(b)
print('这是==b的loc==之后的数据======')
print(b.loc['fir':'sec','名字':'age']) 
print('这是==b的iloc==之后的数据======')
print(b.iloc[0:2,0:2])
'''名字  age sex
0  王贵   24   男
1  狗子   35   男
2  黑蛋   23   女
3  小五    5   男
4  李四    6   男
5  小红    4   女
6  王贵   24   男
这是==a的loc==之后的数据======名字  age
0  王贵   24
1  狗子   35
2  黑蛋   23
这是==a的iloc==之后的数据======名字  age
0  王贵   24
1  狗子   35
!!!!!!!!!!这是添加了index后==名字  age sex
fir   王贵   24   男
sec   狗子   35   男
thre  黑蛋   23   女
fo    小五    5   男
fi    李四    6   男
six   小红    4   女
sev   王贵   24   男
这是==b的loc==之后的数据======名字  age
fir  王贵   24
sec  狗子   35
这是==b的iloc==之后的数据======名字  age
fir  王贵   24
sec  狗子   35
'''

本文发布于:2024-02-05 02:56:26,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170722388562375.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   pandas
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23