【解決方法】 Valueerror: シリーズの真の値があいまいです。 a.empty、a.bool()、a.item()、a.any() または a.all() を使用します。

プログラミングQA


ここでは、特定の文字列 (「SPF」、「UV」、「SUN」) が LDESC 列の各値に存在するかどうかを確認しようとしています。 ループには str.contains() を使用し、そのために if 条件を使用します。 そのため、文字列が存在するかどうかを示す代わりにコードを記述すると、値のエラーが表示されます。

私が試したこと:

コードはこちら

import pandas as pd
import numpy as np
import regex as re
df=pd.read_excel(r'D:\Practice Files\Anirudh Exercise Skin India.xlsx')
Nonsun= []
for value in df["LDESC"]:
    if df["LDESC"].str.contains("SPF|UV"):
        Nonsun.append("SPF")
    elif df["LDESC"].str.contains("SPF"):
            Nonsun.append("SPF")
    elif df["LDESC"].str.contains("UV"):
        Nonsun.append("UV")
    elif df["LDESC"].str.contains("SUN"):
        Nonsun.append("SUN")
    else:
        Nonsun.append("NON-SUN")

df["SPF/UV/SUN"] = Nonsun
print(df)

ここにエラーがあります

Traceback (most recent call last):
  File "C:\Users\ani\PycharmProjects\pythonProject\main8.py", line 44, in <module>
    if df["LDESC"].str.contains("SPF|UV"):
  File "C:\Users\ani\PycharmProjects\pythonProject\venv\lib\site-packages\pandas\core\generic.py", line 1527, in __nonzero__
    raise ValueError(
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

このエラーを解決する方法

解決策 1

に対してテストする必要があります value、 いいえ df["LDESC"].

コメント

タイトルとURLをコピーしました