python嵌套循环“ if”语句

时间:2020-04-20 22:10:54

标签: python pandas

import pandas as pd

Data = {'participant': ['Jordan', 'Jess', 'Jake', 'Alice', 'Alan', 'Lauren'], 'Age': [26, 23, 19, 20, 24, 28], 'Sex': ['M', 'F', 'M', 'F', 'M', 'F'], 'BMI': [26, 22, 24, 17, 35, 20], 'Smokes': ['No', 'No', 'Yes', 'No', 'Yes', 'No']}
df = pd.DataFrame(Data)
print(df)
for name in 'participant':
  for ages in 'Age':
    for sexs in 'Sex':
      for Bmis in 'BMI':
        for smoke in 'Smokes':
          if nmb.find(str(30)) >= 30:
            print('participant')
  else: 
    print('none found')

问题:BMI为30或更高的参与者的姓名应该是哪一行代码?我该如何植入呢?

2 个答案:

答案 0 :(得分:4)

您应该阅读循环的目的,因为这绝对不会满足您的要求。还要检查Indexing and selecting data,这是您应该在此处执行的操作。

对于您想要的东西,您只需要:

df.Age.ge(30).sum()

答案 1 :(得分:0)

您只需输入参与者姓名即可:

df[df['BMI']>=30][['participant']]

可以解决问题。结果:

    participant   
4          Alan   

如果您希望将结果作为数组:df[df['BMI']>=30][['participant']].values

作为旁注::当您编写代码并嵌套有许多if语句的for循环时-您(很有可能)在做错事。将其用作发出不同(优雅)策略的信号。