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或更高的参与者的姓名应该是哪一行代码?我该如何植入呢?
答案 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循环时-您(很有可能)在做错事。将其用作发出不同(优雅)策略的信号。