我知道有一种方法可以定义一个函数来使代码更清晰,但我不知道如何去做。
noshow = len((df[
(df['Gender'] == 'M') \
& (df['No_show'] == 'Yes') \
& (df['Persons_age'] == 'Child')
]))
noshow
有多个性别和多个No_show答案和多人的年龄,我不想写出每个人的代码。
我已经获得了单个函数的代码,但没有用于多次迭代。
def print_noshow_percentage(column_name, value, percentage_text):
total = (df[column_name] == value).sum()
noshow = len((df[(df[column_name] == value) & (df['No_show'] == 'Yes')]))
print(int((noshow / total) * 100), percentage_text)
解决办法:
以下代码将为您提供有关百分比计数的所有信息。
counts = df.groupby(['Gender', 'Persons_age'])['No_show'].value_counts(normalize=True)
现在你需要决定如何处理它。您可以遍历数据框打印每一行,或者您可以找到特定的组合,或者您可以打印出整个内容。
一般来说,寻找内置方法比尝试在pandas之外构建函数更好。有很多不同的方法可以做,检查文档是一个很好的起点。








暂无数据