日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ValueError: Must have equal len keys and value when setting with an iterable

發布時間:2025/4/16 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ValueError: Must have equal len keys and value when setting with an iterable 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這個錯誤是數值大小錯誤

具體的意思是: 必須有相同長度的關鍵字跟值,當設置的對象是一個可迭代的對象的時候。

  • 可迭代的對象,就是想tuple,list,字典一類的。

遇到這個錯誤,我故意在做測試的時候。

具體的代碼

這段代碼是有錯誤的,錯誤部分已經標記出來了

import pandas as pdif __name__ == '__main__':df = pd.DataFrame({'AAA': range(5), 'BBB': list('abcde'), 'CCC': ['a', 12, 1.2, ['alist'], (1, 2)]})print(df)df.loc[df.AAA >= 2, 'BBB'] = '-Changed'print(df)df.loc[df.AAA >= 3, 'CCC'] = [1, 3, 3] # 錯了print(df)

知道問題在哪之后,這個該怎么解決呢?

我們先把這個語句,還有這個dataframe單獨拿出來看

df.loc[df.AAA >= 3, ‘CCC’] = [1, 3, 3]

  • dataframe在此!
AAA BBB CCC 0 0 a a 1 1 b 12 2 2 c 1.2 3 3 d [alist] 4 4 e (1, 2)

接下來,我將前面那些沒有問題代碼去掉。只用那個生成的來做探索
這里,分別對于這個函數的理解,或者說是用途,做出兩種不同解法。
第一種:將這個長度改為相等的。
將這個語句做下面的修改。

df.loc[df.AAA >= 3, ‘CCC’] = [1, 3]

源碼被我改成這樣,輸出的結果就會發生改變

import pandas as pdif __name__ == '__main__':df = pd.DataFrame({'AAA': range(5), 'BBB': list('abcde'), 'CCC': ['a', 12, 1.2, ['alist'], (1, 2)]})print(df)df.loc[df.AAA >= 3, 'CCC'] = [1, 3]print(df) AAA BBB CCC 0 0 a a 1 1 b 12 2 2 c 1.2 3 3 d [alist] 4 4 e (1, 2)AAA BBB CCC 0 0 a a 1 1 b 12 2 2 c 1.2 3 3 d 1 4 4 e 3

注意到了沒有,在后面的部分,CCC被按照迭代的方式,順序的放到了對應的位置當中。

第二種方法: 如果我想要讓每個地方都變成對應的的list怎么弄呢?
可以將代碼改成下面這樣子!這樣就可以避免到了不斷地取找迭代的對象接著去迭代,使得會報錯!
import pandas as pdif __name__ == '__main__':df = pd.DataFrame({'AAA': range(5), 'BBB': list('abcde'), 'CCC': ['a', 12, 1.2, ['alist'], (1, 2)]})print(df)df.loc[df.AAA >= 3, 'CCC'] = [frozenset((1, 2)), frozenset((1, 3))]print(df)

這時候的輸出的結果是:

AAA BBB CCC 0 0 a a 1 1 b 12 2 2 c 1.2 3 3 d [alist] 4 4 e (1, 2)AAA BBB CCC 0 0 a a 1 1 b 12 2 2 c 1.2 3 3 d (1, 2) 4 4 e (1, 3)

最后,老套路,宣傳一波自己的公眾號!(求關注哇!)
本人中大一肥宅,歡迎大家關注,請掃下面的二維碼(〃’▽’〃)


如果覺得有幫助的話,可以掃碼,贊賞鼓勵一下!謝謝!


總結

以上是生活随笔為你收集整理的ValueError: Must have equal len keys and value when setting with an iterable的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。