時間:2020-11-29來源:www.outletmksalestore.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賦值失敗內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!
2022-03-01
PHP如何從txt文件中讀取數據詳解2022-03-01
分享5個方便好用的Python自動化腳本2021-03-29
Python中pycharm編輯器界面風格修改方法