Python 嵌套循环"if"语句


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或更高的参与者的名字写下来?我该如何植入?

您应该了解循环的目的是什么,因为这肯定不会达到您想要的效果。还要检查索引和选择数据,这是你应该在这里做的。

对于你想要的,你只需要:

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

您询问了参与者的姓名,所以只需:

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

会成功的。结果:

participant   
4          Alan   

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

附带说明:当您编写代码并嵌套了许多if语句的for循环时,您(很可能(做错了什么。用它作为一个信号,来提供一个不同的(优雅的(策略。

最新更新