#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;’