大大們 :
如下語法會是哪邊有問題,能否幫忙
謝謝
import pandas as pd
A = pd.read_excel('國文成績.xlsx')
print(A)
print('-'*100)
if A['國文成績'] >= 90 :
A['level'] = 'Good'
else :
A['level'] = 'Fail'
ValueError Traceback (most recent call last)
in
3 print(A)
4 print('-'*100)
----> 5 if A['國文成績'] >= 90 :
6 A['level'] = 'Good'
7 else :
~\anaconda3\lib\site-packages\pandas\core\generic.py in nonzero(self)
1440 @final
1441 def nonzero(self):
-> 1442 raise ValueError(
1443 f"The truth value of a {type(self).name} is ambiguous. "
1444 "Use a.empty, a.bool(), a.item(), a.any() or a.all()."
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
我認為這不算 「Python 基本」,畢竟都引入 pandas 了……
## Python==3.10.8; pandas==1.5.2;
import pandas as pd
A = pd.read_excel('國文成績.xlsx')
print(A)
print('-'*100)
A['level'] = A['國文成績'].apply(lambda x: 'Good' if x >= 90 else 'Fail')
print(A)
類似問題可以先google看看,通常可以直接找到解答。
你這問題是因為 A['國文成績'] >= 90
的回傳結果不是true或是false,所以if無法判斷結果,才報錯的。
如果要解決問題,可以先試著print(A['學號 '], A['國文成績'] >= 90)
看看中間哪一筆資料怪怪的,把有問題的部分直接顯示出來,再根據狀況去排除。