时间:2020-11-29来源:www.pcxitongcheng.com作者:电脑系统城
一、pandas对整列赋值
这个比较正常,一般直接赋值就可以:
1 2 3 |
x = pd.DataFrame({ 'A' : [ '1' , '2' , '3' , None , None ], 'B' : [ '4' , '5' , '6' , '7' , None ]}) x[ 'A' ] = [ '10' , '11' , '12' , '13' , '14' ] |
二、pandas对非整列赋值
1、用单个值赋值
1 2 3 4 |
x = pd.DataFrame({ 'A' : [ '1' , '2' , '3' , None , None ], 'B' : [ '4' , '5' , '6' , '7' , None ]}) index = x[ 'A' ].isna() x[index][ 'A' ] = 100 |
是不是很奇怪,没有赋值成功!!
2、用多个值赋值
1 2 3 4 |
x = pd.DataFrame({ 'A' : [ '1' , '2' , '3' , None , None ], 'B' : [ '4' , '5' , '6' , '7' , None ]}) index = x[ 'A' ].isna() x[index] = [ 100 , 200 ] |
报错了!!提示说,要用.loc赋值,那我们试一下。
3、.loc赋值
1 2 3 4 |
x = pd.DataFrame({ 'A' : [ '1' , '2' , '3' , None , None ], 'B' : [ '4' , '5' , '6' , '7' , None ]}) index = x[ 'A' ].isna() x.loc[index, [ 'A' ]] = [ 100 , 200 ] |
报错,这是因为shape原因。
1 | x.loc[index, [ 'A' ]] = [[ '100' ], [ '200' ]] |
三、用数据的另外一列赋值
1、错误方式
1 2 3 4 |
x = pd.DataFrame({ 'A' : [ '1' , '2' , '3' , ' ', ' '], 'B' : [ '4' , '5' , '6' , '7' , '']}) index = x[ 'A' ].isna() x.loc[index, [ 'A' ]] = x.loc[index, [ 'B' ]] |
正确方式
1 2 3 4 |
x = pd.DataFrame({ 'A' : [ '1' , '2' , '3' , ' ', ' '], 'B' : [ '4' , '5' , '6' , '7' , '']}) index = x[ 'A' ].isna() x.loc[index, [ 'A' ]] = x.loc[index, [ 'B' ]].copy().values.tolist() |
到此这篇关于详解pandas赋值失败问题解决的文章就介绍到这了,更多相关pandas赋值失败内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
2023-03-17
python flask项目打包成docker镜像发布的过程2023-03-17
python调试模块ipdb详解2023-03-17
python使用openai生成图像的超详细教程python cron定时任务触发接口自动化巡检 apscheduler报错:Run time of job …… next run at: ……)” was missed by misfire_grace_time参数 找到任务超时的根本原因...
2023-03-15