2014-11-08 114 views
0

我是一名Python初学者,刚刚学习如何编写函数。我有一份权重和性别列表,并试图根据性别标准将其分成两个新列表。使用for循环,我已经成功至今:根据条件拆分列表(性别)

df = pd.read_csv('brainweight.csv') 
w = list(df['Weight']) 
s = list(df['Sex']) 

female_weight = [] 
male_weight = [] 

for sex, weight in zip (s, w): 
    if sex == 'f': 
     female_weight.append(weight) 
    else: 
     male_weight.append(weight) 

我应该如何修改这个for循环到一个函数,其中变量= M/F(性别)?

回答

0
df = pd.read_csv('brainweight.csv') 
w = list(df['Weight']) 
s = list(df['Sex']) 
def list_by_gender(): 
    females = [] 
    males = [] 
    for sex, weight in zip (s, w): 
     if sex == 'f': 
      females.append(weight) 
     else: 
      males.append(weight) 
    return males,females 

male_list,female_list=list_by_gender() 
+0

非常感谢!你介意解释最后一行吗?我注意到,male_list和female_list是事先没有定义的东西。我写了一些与你的函数非常相似的东西,但python并没有给我正确的值...... – 2014-11-08 17:10:27

+0

在Python中,你不需要像** C **那样的**变量声明**,我们可以初始化许多变量在脚本中的任何位置都有一行,如'a,b,c = 1,2,3'。在最后一行,我分配了直接从函数返回的'male_list'和'female_list'值。这与编写'a,b = 2,3'类似。 – 2014-11-08 17:17:50

+0

@NackSrismith,如果您觉得有用,请接受答案。 – 2014-11-08 17:23:31