pandas——条件查询与增删

阅读: 评论:0

pandas——条件查询与增删

pandas——条件查询与增删

数据的条件查询

逻辑符号:与(&)、或( | )、非( ~ ),

a[[‘名字’,‘age’,‘sex’]]选出要满足条件的列[(a.名字==‘狗子’)&(a.age==35)]的中括号中是选择出满足条件的行

&#ad_excel(r'my_excel.xlsx',encoding='gbk')
b&#ad_excel(r'my_excel.xlsx',encoding='gbk')
print(a);print('下面的是进行==与运算==条件') 
print(a[['名字','age','sex']][(a.名字=='狗子')&(a.age==35)]) 
print('下面的是进行==或运算==条件') 
print(a[['名字','age','sex']][(a.名字=='狗子')|(a.age>=25)]) 
print('下面的是进行==非运算==条件') 
print(a[['名字','age','sex']][~((a.名字=='狗子')|(a.名字=='王贵'))])
print('下面是between用法=========')
print(a['age'].between(23,30,inclusive=False))
print('下面是between用法和筛选的配合使用')
print(a[['名字','age','sex']][a['age'].between(23,30,inclusive=False)])
'''名字  age sex
0  王贵   24   男
1  狗子   35   男
2  黑蛋   23   女
3  小五    5   男
4  李四    6   男
5  小红    4   女
6  王贵   24   男
7  狗子   25   男
下面的是进行==与运算==条件名字  age sex
1  狗子   35   男
下面的是进行==或运算==条件名字  age sex
1  狗子   35   男
7  狗子   25   男
下面的是进行==非运算==条件名字  age sex
2  黑蛋   23   女
3  小五    5   男
4  李四    6   男
5  小红    4   女
下面是between用法
0     True
1    False
2    False
3    False
4    False
5    False
6     True
7     True
Name: age, dtype: bool名字  age sex
0  王贵   24   男
6  王贵   24   男
7  狗子   25   男
'''
配合isin(’ 查询列表 ')方法

判断查询对象是存在于表文件中,返回True或False,
注意,放入列表一样的对象,可以放入列表

a&#ad_excel(r'my_excel.xlsx',encoding='gbk')
print(a[['名字','age','sex']][a['名字'].isin(['王贵'])])
'''名字  age sex
0  王贵   24   男
6  王贵   24   男
'''
配合ains(’ 查询字符 ')方法

可以判断某一列是否有包含某一个字符的一行

a&#ad_excel(r'my_excel.xlsx',encoding='gbk')
print(a);print('下面的内容查找出某一列包含行的数据')
print(a[['名字','age','sex']][a['名字'].ains('小')])
'''名字  age sex
0  王贵   24   男
1  狗子   35   男
2  黑蛋   23   女
3  小五    5   男
4  李四    6   男
5  小红    4   女
6  王贵   24   男
7  狗子   25   男
下面的内容查找出某一列包含行的数据名字  age sex
3  小五    5   男
5  小红    4   女
'''

数据的增删

增加列,df[‘新的列名称’]=[数据]
删除列1,df.drop([‘要删除的列’],axis=1,inplace=True)

删除多个列可以使用列表作为参数
inplace的值(True或Fa’l’se)决定是否将原变量中的属性列删除掉
axis=1表示删除列,当axis=0表示删除某行

删除列2,df.drop(labels=(删除行) ,inplace=True)

labels赋值的可以的索引,这时不能再出现axis的属性

删除列3,del df[‘要删除的列名称’]

删除原文件中的某一列,但只能删除一列

a&#ad_excel(r'my_excel.xlsx',encoding='gbk',sheet_name='蔬菜信息')
print(a);print('下面的内容添加了总价的数据==')
a['总价']=a['单价']*a['数量']
print('下面的内容使用drop删除了支付方式的数据==')
#inplace控制是否改变变量中的数据,当为True时,无返回值
a.drop('付款方式',axis=1,inplace=True) 
print(a)
print('下面的内容使用del删除了总价的数据==')
del a['总价']
print(a)
'''菜名    单价  数量 付款方式
0  白菜  0.80   2   现金
1  萝卜  0.75   4   现金
2  大蒜  2.00   5   现金
3  菠菜  1.00   7   现金
下面的内容添加了总价的数据==
下面的内容使用drop删除了支付方式的数据==菜名    单价  数量    总价
0  白菜  0.80   2   1.6
1  萝卜  0.75   4   3.0
2  大蒜  2.00   5  10.0
3  菠菜  1.00   7   7.0
下面的内容使用del删除了总价的数据==菜名    单价  数量
0  白菜  0.80   2
1  萝卜  0.75   4
2  大蒜  2.00   5
3  菠菜  1.00   7
'''
某一列的位置的修改

1‘先存取,2,再删除原文件该列,3,最后插入到指定位置

a&#ad_excel(r'my_excel.xlsx',encoding='gbk',sheet_name='蔬菜信息')
mid=a['支付方式']
a.drop('支付方式',axis=1,inplace=True)
print(a)
a.insert(0,'支付方式',mid)
print(a)
'''菜名    单价  数量
0  白菜  0.80   2
1  萝卜  0.75   4
2  大蒜  2.00   5
3  菠菜  1.00   7支付方式  菜名    单价  数量
0   现金  白菜  0.80   2
1   现金  萝卜  0.75   4
2   现金  大蒜  2.00   5
3   现金  菠菜  1.00   7
'''
某一个数据的修改

1,先使用loc函数确定需要修改数据的位置,2,再将数据赋值给这些数据

a&#ad_excel(r'my_excel.xlsx',encoding='gbk')
print(a);print('下面是修改后的数据结构!!!!!')
a.loc[a['名字']=='王贵','名字']='小明'
print(a)
'''名字  age sex
0  王贵   24   男
1  狗子   35   男
2  黑蛋   23   女
3  小五    5   男
4  李四    6   男
5  小红    4   女
6  王贵   24   男
7  狗子   25   男
下面是修改后的数据结构!!!!!名字  age sex
0  小明   24   男
1  狗子   35   男
2  黑蛋   23   女
3  小五    5   男
4  李四    6   男
5  小红    4   女
6  小明   24   男
7  狗子   25   男
'''
行或列索引的修改,df.rename(index={原名:新名},inplace=True)
a&#ad_excel(r'my_excel.xlsx',encoding='gbk')
print(a);print('下面是修改columns后的数据结构!!!!!')
a.rename(columns={"名字":'name'},inplace=True)
print(a);print('下面是修改index后的数据结构!!!!!')
a.rename(index={0:'fir'},inplace=True)
print(a)
'''名字  age sex
0  王贵   24   男
1  狗子   35   男
2  黑蛋   23   女
3  小五    5   男
4  李四    6   男
5  小红    4   女
6  王贵   24   男
7  狗子   25   男
下面是修改columns后的数据结构!!!!!name  age sex
0   王贵   24   男
1   狗子   35   男
2   黑蛋   23   女
3   小五    5   男
4   李四    6   男
5   小红    4   女
6   王贵   24   男
7   狗子   25   男
下面是修改index后的数据结构!!!!!name  age sex
fir   王贵   24   男
1     狗子   35   男
2     黑蛋   23   女
3     小五    5   男
4     李四    6   男
5     小红    4   女
6     王贵   24   男
7     狗子   25   男
'''
对数据的分析函数describe()

只是分析数值型数据列信息,不对字符型数据列统计

a&#ad_excel(r'my_excel.xlsx',encoding='gbk')
print(a.describe());print('这后边是一个判断是否有数据')
print(a.describe().loc['count']==0)
'''age  total
count   8.000000    0.0
mean   18.250000    NaN
std    11.609725    NaN
min     4.000000    NaN
25%     5.750000    NaN
50%    23.500000    NaN
75%    24.250000    NaN
max    35.000000    NaN
这后边是一个判断是否有数据
age      False
total     True
Name: count, dtype: bool
'''

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

本文链接:https://www.4u4v.net/it/170722391562377.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