在Pandas Datafram中使用用户输入作为Where子句

2024-04-25 12:37:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个需求,我需要应用一些聚合函数,并根据一些用户输入过滤值 请看下面的代码:

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()

一切都很好,但当编辑者读到行

^{2}$

它抛出一个错误 enter image description here

但当捐献者的年龄被硬编码时,代码运行良好。在

你知道这个问题的原因和解决方法吗

提前谢谢!在


Tags: toimportpandasdfageascountnp
1条回答
网友
1楼 · 发布于 2024-04-25 12:37:27

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

input()返回一个字符串,它看起来像是在用一个无法比较的整型字符串。要么将输入转换为int或float,要么将另一个age转换为str

相关问题 更多 >