Pandas — применить значение истинности неоднозначно при вводе параметра

#python #pandas

#python #pandas

Вопрос:

Почему это работает?

 import numpy as np
from datetime import datetime, timedelta


master = pd.read_csv(
    "C:/Users/grego/Downloads/Specific Drug monitoring.csv"
    , skiprows=11, na_values=["no info", "."])

 pd.to_datetime, errors='coerce')
    if s['Apixaban'] != '' and s["CRCL"] > 60:
        x = 12
    elif s['Apixaban'] != '' and 60 > s["CRCL"] > 30:
        x = 6
    elif s['Apixaban'] != '' and s["CRCL"] < 30:
        x = 3
    if x != 45:
        return s['RFT']   timedelta(days=30*x)
    else:
        return ''


master['RFT required'] = master.apply(RFT,axis=1)
master.to_csv("Category3 testing v01.csv",index=False)
 

Но это не

 import pandas as pd
import numpy as np
from datetime import datetime, timedelta

# Reads base population into python - skipping headers - make sure patients details are duplicated on every line on export
master = pd.read_csv(
    "C:/Users/grego/Downloads/Specific Drug monitoring.csv"
    , skiprows=11, na_values=["no info", "."])

# ref = pd.read_csv("Category3 ref.csv",index_col=0,na_values=["no info"])

master = master.rename(
    columns={'Name, Dosage and Quantity': 'Ace', 'Name, Dosage and Quantity.1': 'Amiodarone',
             'Name, Dosage and Quantity.2': 'Apixaban', 'Value': 'CRCL', 'Code Term': 'ADHD', 'Date': 'Heart Rate',
             'Date.6': "RFT"})
master2 =master

def RFT(s,y):
    x = 45
    s[['RFT']] = s[['RFT']].apply(
        pd.to_datetime, errors='coerce')
    if s['Apixaban'] != '' and s[y] > 60:
        x = 12
    elif s['Apixaban'] != '' and 60 > s[y] > 30:
        x = 6
    elif s['Apixaban'] != '' and s[y] < 30:
        x = 3
    if x != 45:
        return s['RFT']   timedelta(days=30*x)
    else:
        return ''


master['RFT required'] = master.apply(RFT(master,"CRCL"),axis=1)
master.to_csv("Category3 testing v01.csv",index=False)
 

возвращает ошибку

Ошибка значения: значение истинности ряда неоднозначно. Используйте a.empty , a.bool(), a.item(), a.any() или a.all() .

Я очень новичок в python и pandas, так что полегче со мной, ха-ха. Просто запутался в том, как ввод параметра привел к тому, что ряд стал неоднозначным.

Ответ №1:

Возможно, вам следует попытаться заменить ‘и’ на ‘amp;’