1 回答

TA貢獻(xiàn)1893條經(jīng)驗(yàn) 獲得超10個(gè)贊
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
此錯(cuò)誤意味著您正在獲取一系列布爾值而不是單個(gè)布爾值。對(duì)于使用 if 和 alse 你需要一個(gè)單一的True/False值,但在這里通過(guò)使用你會(huì)得到一個(gè)系列,它會(huì)根據(jù)它們滿足的標(biāo)準(zhǔn)df['MS_Date']=="s.xii"為你提供所有位置。True/False
樣品 df:
Player Position color
0 Pele Forward black
1 Platini Midfielder white
2 Beckenbauer Defender red
如果我想根據(jù)某些條件更改顏色列的值,那么我將這樣寫而不是使用 if 和 else:
df.loc[(df['Player']=='Pele') | (df['Position']=='Forward'), 'color'] = 'white'
或者
你可以這樣寫numpy.where:
np.where(<condition>, <value1 if true>, <value2 if false>)
df['color'] = np.where((df['Player']=='Pele') | (df['Position']=='Forward'), 'black', df.color)
為了使其簡(jiǎn)潔明了,np.select請(qǐng)?jiān)诖颂幉榭慈绾问褂茫?https://stackoverflow.com/a/60244752/6660373
也==可以使用而不是使用eq
我將使用 loc 來(lái)獲取我的條件成立的位置。在那個(gè)位置上,我將選擇一個(gè)要更改的列。df.loc[<conditions>, <column to assign>] = <value>
像這樣使用:
df.loc[(df['MS_Date']=="s.xii") | (df['MS_Date']=="s.xii(1)") | (df['MS_Date']=="s.xii(2)") | (df['MS_Date']=="s.xii(in)") | (df['MS_Date']=="s.xii(ex)") | (df['MS_Date']=="s.xii(med)"), 'MS_Date']= "12th century"
df.loc[(df['MS_Date']=="s.xii/xiii") | (df['MS_Date']=="s.xii/xiii"), 'MS_Date']="12 & 13 century"
添加回答
舉報(bào)