Использование пользовательского ввода в качестве предложения Where в Pandas Dataframe - PullRequest
0 голосов
/ 25 мая 2018

У меня есть требование, когда мне нужно применить некоторые агрегатные функции и отфильтровать значения на основе некоторого пользовательского ввода. Взгляните на код ниже:

import pandas as pd
import numpy as np
from pandas import ExcelWriter
import tensorflow

donor_age = input("Enter Donor's Age: ")
donor_organ = input("Enter Organ to Donate: ")

writer = pd.ExcelWriter('Probability.xlsx', engine='xlsxwriter')
workbook = writer.book
df_success_rates = pd.read_excel('HealthChain.xlsx')

df_total=df_success_rates.groupby(['Donor_Age','Donor_Gender','Donor_Organ','SuccessfullCompletion'])\
    .size().to_frame('total_count').reset_index().sort_values(['Donor_Age', 'total_count'], ascending=True)
df_total['Total_Operations']=df_total.groupby(['Donor_Age','Donor_Gender','Donor_Organ']).total_count.transform(np.sum)

df_total['Probability']=df_total['total_count']/df_total['Total_Operations']
#df_total=df_total[(df_total.Donor_Age == donor_age)]
df_total.to_excel(writer, sheet_name='Prob', engine='xlsxwriter', index=False)

writer.save()
workbook.close()

Все работает хорошо, но когда компилятор читаетline

df_total=df_total[(df_total.Donor_Age == donor_age)]

выдает ошибку о том, что enter image description here

Но когда возраст донора задан жестко, код работает хорошо.

ЛюбойИдея, что может быть причиной проблемы и исправить то же самое

Заранее спасибо!

1 Ответ

0 голосов
/ 25 мая 2018

Do

donor_age = int(input("Enter Donor's Age: "))

input () возвращает строку, похоже, что вы сопоставляете строку с целым числом, которое невозможно сравнить.Либо приведите ввод к int, либо к float, либо приведите другой возраст как str.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...