【问题标题】:Splitting list according to criteria (gender)根据标准(性别)拆分列表
【发布时间】:2015-01-05 07:26:52
【问题描述】:

我是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(性别)的函数?

【问题讨论】:

标签: python list function pandas append


【解决方案1】:
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()

【讨论】:

  • 非常感谢!你介意解释一下最后一行吗?我注意到male_list 和female_list 是事先没有定义的。我写了一些与你的函数非常相似的东西,但 python 只是没有给我正确的值......
  • 在 python 中,你不需要像 C 那样在开头的 变量声明,我们可以在任何地方像 a,b,c = 1,2,3 这样在一行中初始化许多变量在脚本中。在最后一行中,我分配了从函数直接返回的 male_listfemale_list 值。类似于写a,b=2,3
  • @NackSrismith,如果您觉得有帮助,请接受答案。
猜你喜欢
  • 1970-01-01
  • 2020-08-25
  • 1970-01-01
  • 1970-01-01
  • 2013-02-27
  • 1970-01-01
  • 1970-01-01
  • 2010-10-31
  • 1970-01-01
相关资源
最近更新 更多